diff src/nabble/model/Site.java @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children 18cf4872fd7f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/nabble/model/Site.java	Thu Mar 21 19:15:52 2019 -0600
@@ -0,0 +1,100 @@
+package nabble.model;
+
+import fschmidt.db.DbDatabase;
+import fschmidt.db.DbObject;
+import fschmidt.db.NoKey;
+import nabble.naml.compiler.Program;
+import nabble.naml.compiler.Template;
+import nabble.naml.compiler.CompileException;
+import nabble.model.export.NodeData;
+
+import java.io.File;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+
+public interface Site extends Message.Source, DbObject<NoKey,SiteImpl> {
+	public DbDatabase getDb();
+	public long getId();
+	public Node getRootNode();
+	public Date getWhenCreated();
+	public Program getProgram();
+	public Template getTemplate(String templateName,Class... base);
+	public void setCustomDomain(String customDomain);
+	public String getCustomDomain();
+	public String getBaseUrl();
+	public int getActivity();
+	public boolean isEmbarrassing();
+	public void setEmbarrassing(boolean isEmbarrassing);
+	public Date getDeleteDate();
+	public void clearDeleteDate();
+	public void deleteRootNode() throws ModelException;  // root must have one child
+	public void delete();
+
+	public User getUser(long id);
+	public User getUserFromEmail(String email);
+	public User getUserFromName(String name);
+	public User getOrCreateUnregisteredUser(String email,String name) throws ModelException;
+	public User getOrCreateUser(String email);
+	public User getOrCreateUser(String email,String name);  // for export/import
+	public String newRegistration(String email,String password,String name,String nextUrl) throws ModelException;
+	public User getRegistration(String registrationKey) throws ModelException;
+
+	public List<User> getUsers(String cnd);
+	public List<User> getUsersByNodeCount(int i, int n, String cnd);
+	public int getUserCount(String cnd);
+
+	public Person getAnonymous(String cookie, String name);
+	public String newAnonymousCookie();
+	public Person getPerson(String id);
+
+	public void addTag(Node node,User user,String label);
+	public void deleteTags(Node node,User user,String sqlCondition);
+	public void deleteTags(String sqlCondition);  // doesn't clear caches
+	public boolean hasTags(Node node,User user,String sqlCondition);
+	public int countTags(String sqlCondition);
+	public List<String> findTagLabels(String sqlCondition);
+	public List<User> findTagUsers(String sqlCondition);
+	public List<Long> findTagUserIds(String sqlCondition);
+	public List<Node> findTagNodes(String sqlCondition);
+	public List<Long> findTagNodeIds(String sqlCondition);
+
+	public boolean isModuleEnabled(String moduleName);
+	public void setModuleEnabled(String moduleName,boolean isEnabled);
+	public Map<String,String> getCustomTweaks();
+	public void setCustomTweaks(Map<String,String> tweaks);
+	public boolean setTweakException(CompileException tweakException);
+	public CompileException getTweakException();
+	public void update();
+	public Site getGoodCopy();
+
+	// moved from ModelHome
+	public Node getNode(long id);
+	public Node getNode(ResultSet rs) throws SQLException;
+	public Collection<? extends Node> getNodes(Collection<Long> ids);
+	public NodeIterator<? extends Node> getNodeIterator(String sql,DbParamSetter paramSetter);
+
+	public String getProperty(String key);
+	public void setProperty(String key,String value);
+
+	public boolean isValidConfiguration(String name);
+	public void deleteConfiguration(String name);
+	public void saveConfiguration(String name,String value,String naml);
+	public String getConfigurationValue(String name);
+	public String getConfigurationTweak();
+
+	public String getNextUrl(String registrationKey);
+	public Node newNode(NodeData data) throws ModelException;
+	public Collection<Node> cacheLastNodes(Collection<Node> nodes);
+
+	public <T> T getExtension(ExtensionFactory<Site,T> factory);
+	public void addTask(String task);
+
+	public File backup();
+	public void backup(String filename);
+	public void backupSchema(String filename);
+}