information-system-model/src/test/java/org/gcube/informationsystem/utils/discovery/ISMDiscoveryTest.java

67 lines
2.0 KiB
Java

package org.gcube.informationsystem.utils.discovery;
import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;
import org.gcube.informationsystem.base.reference.AccessType;
import org.gcube.informationsystem.base.reference.Element;
import org.gcube.informationsystem.base.reference.entities.EntityElement;
import org.gcube.informationsystem.base.reference.properties.PropertyElement;
import org.gcube.informationsystem.base.reference.relations.RelationElement;
import org.gcube.informationsystem.types.reference.Type;
import org.gcube.informationsystem.types.reference.properties.PropertyType;
import org.junit.Test;
public class ISMDiscoveryTest {
@Test
public void testISMDIscovery() {
ElementSpecilizationDiscovery<PropertyElement> propertyDiscovery = new ElementSpecilizationDiscovery<>(PropertyElement.class);
propertyDiscovery.analizeISM(PropertyType.class);
}
@Test
public void test() throws Exception {
List<Package> packages = new ArrayList<Package>();
Class<Type> tdClz = Type.class;
packages.add(tdClz.getPackage());
AccessType[] accessTypes = AccessType.values();
for(AccessType accessType : accessTypes) {
Class<Element> clz = accessType.getTypeClass();
packages.add(clz.getPackage());
}
ServiceLoader<? extends RegistrationProvider> regsitrationProviders = ServiceLoader
.load(RegistrationProvider.class);
for(RegistrationProvider registrationProvider : regsitrationProviders) {
packages.addAll(registrationProvider.getPackagesToRegister());
}
SchemaAction schemaAction = new SchemaAction() {
@Override
public <R extends RelationElement<? extends EntityElement, ? extends EntityElement>> void manageRelationClass(
Class<R> r) throws Exception {
}
@Override
public <P extends PropertyElement> void managePropertyClass(Class<P> e) throws Exception {
}
@Override
public <E extends EntityElement> void manageEntityClass(Class<E> e) throws Exception {
}
};
ElementSpecilizationDiscovery.manageISM(schemaAction , packages);
}
}