Improved code

This commit is contained in:
Luca Frosini 2023-02-07 15:45:02 +01:00
parent 5321570886
commit 80f2aba06d
3 changed files with 20 additions and 23 deletions

View File

@ -6,7 +6,6 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.ServiceLoader;
import java.util.Set;
import org.gcube.informationsystem.base.reference.AccessType;
@ -25,20 +24,6 @@ public class ModelKnowledge {
private static final Logger logger = LoggerFactory.getLogger(ModelKnowledge.class);
private static ModelKnowledge modelKnowledge;
public static ModelKnowledge getGlobalModelKnowledgeInstance() {
if(modelKnowledge==null) {
modelKnowledge = new ModelKnowledge();
ServiceLoader<? extends RegistrationProvider> registrationProviders = ServiceLoader
.load(RegistrationProvider.class);
for(RegistrationProvider rp : registrationProviders) {
modelKnowledge.addRegistrationProvider(rp);
}
}
return modelKnowledge;
}
protected boolean created;
protected Map<AccessType,UsageKnowledge> usageKnowledges;

View File

@ -12,6 +12,7 @@ import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.ServiceLoader;
import java.util.Set;
import org.gcube.com.fasterxml.jackson.core.JsonGenerationException;
@ -30,6 +31,7 @@ import org.gcube.com.fasterxml.jackson.databind.node.TextNode;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.Element;
import org.gcube.informationsystem.discovery.Discovery;
import org.gcube.informationsystem.discovery.RegistrationProvider;
import org.gcube.informationsystem.discovery.knowledge.ModelKnowledge;
import org.gcube.informationsystem.types.TypeMapper;
import org.gcube.informationsystem.types.reference.Type;
@ -47,7 +49,21 @@ public abstract class ElementMapper {
protected static final ObjectMapper mapper;
protected static final Map<String, Class<? extends Element>> knownTypes;
//
private static ModelKnowledge modelKnowledge;
public static ModelKnowledge getGlobalModelKnowledgeInstance() {
if(modelKnowledge==null) {
modelKnowledge = new ModelKnowledge();
ServiceLoader<? extends RegistrationProvider> registrationProviders = ServiceLoader
.load(RegistrationProvider.class);
for(RegistrationProvider rp : registrationProviders) {
modelKnowledge.addRegistrationProvider(rp);
}
}
return modelKnowledge;
}
/**
* @return the ObjectMapper
*/
@ -107,7 +123,7 @@ public abstract class ElementMapper {
}
try {
ModelKnowledge.getGlobalModelKnowledgeInstance().createKnowledge();
ElementMapper.getGlobalModelKnowledgeInstance().createKnowledge();
}catch (Exception e) {
throw new RuntimeException(e);
}

View File

@ -5,6 +5,7 @@ import java.util.Map;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.Element;
import org.gcube.informationsystem.discovery.knowledge.ModelKnowledge;
import org.gcube.informationsystem.serialization.ElementMapper;
import org.gcube.informationsystem.tree.Tree;
import org.gcube.informationsystem.types.TypeMapper;
import org.gcube.informationsystem.types.reference.Type;
@ -25,18 +26,13 @@ public class DiscoveryTest {
@Test
public void testDiscovery() throws Exception {
ModelKnowledge modelKnowledge = ModelKnowledge.getGlobalModelKnowledgeInstance();
ModelKnowledge modelKnowledge = ElementMapper.getGlobalModelKnowledgeInstance();
modelKnowledge.createKnowledge();
AccessType[] accessTypes = AccessType.getModelTypes();
for(AccessType accessType : accessTypes) {
Tree<Class<Element>> classesTree = modelKnowledge.getClassesTree(accessType);
logger.info("Classes tree for {} is\n{}", accessType.getName(), classesTree.toString());
// Tree<Type> typesTree = modelKnowledge.getTypesTree(accessType);
// logger.info("Types tree for {} is\n{}", accessType.getName(), typesTree.toString());
}
}