package org.orienteer.core.module; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.Set; import org.orienteer.core.CustomAttribute; import org.orienteer.core.OrienteerWebApplication; import com.orientechnologies.orient.core.db.document.ODatabaseDocument; import com.orientechnologies.orient.core.index.OIndex; import com.orientechnologies.orient.core.metadata.schema.OClass; import com.orientechnologies.orient.core.metadata.schema.OClass.INDEX_TYPE; import com.orientechnologies.orient.core.metadata.schema.OProperty; import com.orientechnologies.orient.core.metadata.schema.OSchema; import com.orientechnologies.orient.core.metadata.schema.OType; import com.orientechnologies.orient.core.record.impl.ODocument; /** * Abstract dummy {@link IOrienteerModule} to simplify creation of specific Orienteer modules */ public abstract class AbstractOrienteerModule implements IOrienteerModule { private final String name; private final int version; private final Set<String> dependencies; protected AbstractOrienteerModule(String name, int version) { this(name, version, new HashSet<String>()); } protected AbstractOrienteerModule(String name, int version, String... dependencies) { this(name, version, new HashSet<String>(Arrays.asList(dependencies))); } protected AbstractOrienteerModule(String name, int version, Set<String> dependencies) { this.name = name; this.version = version; this.dependencies = Collections.unmodifiableSet(dependencies); } @Override public String getName() { return name; } @Override public int getVersion() { return version; } @Override public Set<String> getDependencies() { return dependencies; } @Override public ODocument onInstall(OrienteerWebApplication app, ODatabaseDocument db) { return null; } public void onUpdate(OrienteerWebApplication app, ODatabaseDocument db, int oldVersion, int newVersion) { } @Override public ODocument onUpdate(OrienteerWebApplication app, ODatabaseDocument db, ODocument moduleDoc, int oldVersion, int newVersion) { onUpdate(app, db, oldVersion, newVersion); return moduleDoc; } public void onUninstall(OrienteerWebApplication app, ODatabaseDocument db) { } @Override public void onUninstall(OrienteerWebApplication app, ODatabaseDocument db, ODocument moduleDoc) { onUninstall(app, db); } public void onInitialize(OrienteerWebApplication app, ODatabaseDocument db) { } @Override public void onInitialize(OrienteerWebApplication app, ODatabaseDocument db, ODocument moduleDoc) { onInitialize(app, db); } @Override public void onConfigurationChange(OrienteerWebApplication app, ODatabaseDocument db, ODocument moduleDoc) { } public void onDestroy(OrienteerWebApplication app, ODatabaseDocument db) { } @Override public void onDestroy(OrienteerWebApplication app, ODatabaseDocument db, ODocument moduleDoc) { onDestroy(app, db); } }