73 lines
3.1 KiB
Java
73 lines
3.1 KiB
Java
package org.gcube.informationsystem.utils.documentation;
|
|
|
|
import java.lang.reflect.Constructor;
|
|
|
|
import org.gcube.informationsystem.base.reference.AccessType;
|
|
import org.gcube.informationsystem.types.TypeMapper;
|
|
import org.gcube.informationsystem.types.reference.Type;
|
|
import org.gcube.informationsystem.utils.documentation.model.DocumentationGenerator;
|
|
import org.gcube.informationsystem.utils.documentation.model.entities.EntityDocumentationGenerator;
|
|
import org.gcube.informationsystem.utils.documentation.model.entities.FacetDocumentationGenerator;
|
|
import org.gcube.informationsystem.utils.documentation.model.entities.ResourceDocumentationGenerator;
|
|
import org.gcube.informationsystem.utils.documentation.model.properties.PropertyDocumentationGenerator;
|
|
import org.gcube.informationsystem.utils.documentation.model.relations.ConsistsOfDocumentationGenerator;
|
|
import org.gcube.informationsystem.utils.documentation.model.relations.IsRelatedToDocumentationGenerator;
|
|
import org.gcube.informationsystem.utils.documentation.model.relations.RelationDocumentationGenerator;
|
|
|
|
/**
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
*/
|
|
public enum ModelTypes {
|
|
|
|
PROPERTY(AccessType.PROPERTY, PropertyDocumentationGenerator.class, true, ModelTypes.PROPERTIES_FILENAME, true),
|
|
ENTITY(AccessType.ENTITY, EntityDocumentationGenerator.class, false, ModelTypes.ENTITIES_FILENAME, true),
|
|
RESOURCE(AccessType.RESOURCE, ResourceDocumentationGenerator.class, true, ModelTypes.ENTITIES_FILENAME, false),
|
|
FACET(AccessType.FACET, FacetDocumentationGenerator.class, true, ModelTypes.ENTITIES_FILENAME, false),
|
|
RELATION(AccessType.RELATION, RelationDocumentationGenerator.class, false, ModelTypes.RELATIONS_FILENAME, true),
|
|
IS_RELATED_TO(AccessType.IS_RELATED_TO, IsRelatedToDocumentationGenerator.class, true, ModelTypes.RELATIONS_FILENAME, false),
|
|
CONSISTS_OF(AccessType.CONSISTS_OF, ConsistsOfDocumentationGenerator.class, true, ModelTypes.RELATIONS_FILENAME, false);
|
|
|
|
public static final String PROPERTIES_FILENAME = "properties.rst";
|
|
public static final String ENTITIES_FILENAME = "entities.rst";
|
|
public static final String RELATIONS_FILENAME = "relations.rst";
|
|
|
|
private final AccessType accessType;
|
|
private final Class<? extends DocumentationGenerator> dgClz;
|
|
private final boolean discover;
|
|
private final String filename;
|
|
private final boolean newFile;
|
|
|
|
ModelTypes(AccessType accessType, Class<? extends DocumentationGenerator> dgClz, boolean discover, String filename, boolean newFile) {
|
|
this.accessType = accessType;
|
|
this.dgClz = dgClz;
|
|
this.discover = discover;
|
|
this.filename = filename;
|
|
this.newFile = newFile;
|
|
}
|
|
|
|
public AccessType getAccessType() {
|
|
return accessType;
|
|
}
|
|
|
|
public Class<? extends DocumentationGenerator> getDocumentationGeneratorClz() {
|
|
return dgClz;
|
|
}
|
|
|
|
public DocumentationGenerator getDocumentationGeneratorInstance(Type type) throws Exception {
|
|
Constructor<? extends DocumentationGenerator> constructor = dgClz.getConstructor(Type.class);
|
|
return constructor.newInstance(type);
|
|
}
|
|
|
|
public boolean discover() {
|
|
return discover;
|
|
}
|
|
|
|
public String getFilename() {
|
|
return filename;
|
|
}
|
|
|
|
public boolean requiresNewFile() {
|
|
return newFile;
|
|
}
|
|
}
|