79 lines
2.3 KiB
Java
79 lines
2.3 KiB
Java
package org.gcube.informationsystem.utils.documentation.generator;
|
|
|
|
import java.util.Map;
|
|
import java.util.TreeMap;
|
|
|
|
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.knowledge.Tree;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
/**
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
*/
|
|
public class TreeGenerator {
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(TreeGenerator.class);
|
|
|
|
protected Map<AccessType, Tree> types;
|
|
|
|
public TreeGenerator() {
|
|
types = new TreeMap<>();
|
|
}
|
|
|
|
public void addType(Type type) {
|
|
AccessType accessType = type.getAccessType();
|
|
if(types.get(accessType)==null) {
|
|
Type head = TypeMapper.createTypeDefinition(accessType.getTypeClass());
|
|
Tree tree = new Tree(head);
|
|
types.put(accessType, tree);
|
|
}
|
|
if(type.getName().compareTo(accessType.getName())==0) {
|
|
return;
|
|
}
|
|
Tree tree = types.get(accessType);
|
|
tree.addNode(type);
|
|
}
|
|
|
|
|
|
public void elaborateTree(AccessType at, Tree tree) {
|
|
logger.info("\n{}", tree.toString());
|
|
|
|
// elaborateList(propertyTypes);
|
|
//
|
|
// File f = getFile(ENTITIES_FILENAME, true);
|
|
// DocumentationGenerator edg = new EntityDocumentationGenerator(TypeMapper.createTypeDefinition(Entity.class));
|
|
// edg.setOffsetLevel(offsetLevel);
|
|
// StringBuffer sb = edg.generateSection();
|
|
// Files.write(f.toPath(), sb.toString().getBytes(), StandardOpenOption.APPEND);
|
|
//
|
|
// elaborateList(resourceTypes);
|
|
// elaborateList(facetTypes);
|
|
//
|
|
// f = getFile(RELATIONS_FILENAME, true);
|
|
// DocumentationGenerator rdg = new RelationDocumentationGenerator(TypeMapper.createTypeDefinition(Relation.class));
|
|
// rdg.setOffsetLevel(offsetLevel);
|
|
// sb = rdg.generateSection();
|
|
// Files.write(f.toPath(), sb.toString().getBytes(), StandardOpenOption.APPEND);
|
|
//
|
|
// elaborateList(isRelatedToTypes);
|
|
// elaborateList(consistsOfTypes);
|
|
}
|
|
|
|
public void generate() throws Exception {
|
|
|
|
AccessType[] accessTypes = new AccessType[] {
|
|
AccessType.PROPERTY,
|
|
AccessType.RESOURCE, AccessType.FACET,
|
|
AccessType.CONSISTS_OF, AccessType.IS_RELATED_TO};
|
|
for(AccessType at : accessTypes) {
|
|
Tree tree = types.get(at);
|
|
elaborateTree(at, tree);
|
|
}
|
|
|
|
}
|
|
|
|
}
|