Search in sources :

Example 21 with DefaultTypeDefinition

use of eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition in project hale by halestudio.

the class PatternTest method createCurveType.

private TypeDefinition createCurveType() {
    // create the curve type
    DefaultTypeDefinition curve = new DefaultTypeDefinition(new QName(GML_NS, "CurveType"));
    XmlElement curveElement = new XmlElement(CURVE_ELEMENT, curve, null);
    curve.getConstraint(XmlElements.class).addElement(curveElement);
    // create the segments property for curve
    TypeDefinition segArray = new DefaultTypeDefinition(new QName(GML_NS, // $NON-NLS-1$
    "CurveSegmentArrayPropertyType"));
    new DefaultPropertyDefinition(new QName("segments"), curve, segArray);
    // create the AbstractCurveSegement property for segArray
    DefaultTypeDefinition absSeg = new DefaultTypeDefinition(new QName(GML_NS, // $NON-NLS-1$
    "AbstractCurveSegementType"));
    absSeg.setConstraint(AbstractFlag.ENABLED);
    new DefaultPropertyDefinition(new QName("AbstractCurveSegment"), segArray, absSeg);
    // add dummy sub-type
    DefaultTypeDefinition subtype = new DefaultTypeDefinition(new QName("somespace", // $NON-NLS-1$ //$NON-NLS-2$
    "SomeSegmentType"));
    subtype.setSuperType(absSeg);
    // create the LineStringSegmentType sub-type
    DefaultTypeDefinition lineSeg = new DefaultTypeDefinition(new QName(GML_NS, // $NON-NLS-1$
    "LineStringSegmentType"));
    lineSeg.setSuperType(absSeg);
    XmlElement lineSegElement = new XmlElement(new QName(GML_NS, "LineStringSegment"), lineSeg, new QName(GML_NS, "AbstractCurveSegment"));
    lineSeg.getConstraint(XmlElements.class).addElement(lineSegElement);
    return curve;
}
Also used : DefaultTypeDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition) DefaultPropertyDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultPropertyDefinition) XmlElements(eu.esdihumboldt.hale.io.xsd.constraint.XmlElements) QName(javax.xml.namespace.QName) XmlElement(eu.esdihumboldt.hale.io.xsd.model.XmlElement) TypeDefinition(eu.esdihumboldt.hale.common.schema.model.TypeDefinition) DefaultTypeDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition)

Example 22 with DefaultTypeDefinition

use of eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition in project hale by halestudio.

the class DefaultAlignmentIOTest method testSaveLoad.

/**
 * Test saving and loading an example alignment
 *
 * @throws Exception if an error occurs
 */
@Test
public void testSaveLoad() throws Exception {
    // populate alignment
    MutableAlignment align = new DefaultAlignment();
    DefaultSchema source = new DefaultSchema("", null);
    DefaultSchema target = new DefaultSchema("", null);
    // cell 1
    MutableCell cell1 = new DefaultCell();
    String id1;
    cell1.setTransformationIdentifier(id1 = "trans1");
    ListMultimap<String, ParameterValue> parameters1 = LinkedListMultimap.create();
    parameters1.put("test", new ParameterValue("1"));
    parameters1.put("test", new ParameterValue("2"));
    parameters1.put("t", new ParameterValue("3"));
    cell1.setTransformationParameters(parameters1);
    if (supportsTransformationModes()) {
        cell1.setTransformationMode(TransformationMode.passive);
    }
    ListMultimap<String, Type> source1 = ArrayListMultimap.create();
    QName source1TypeName;
    String source1EntityName;
    TypeDefinition sourceType1 = new DefaultTypeDefinition(source1TypeName = new QName("source1Type"));
    String filterText = "someproperty > 12";
    Filter filter = new FilterGeoCqlImpl(filterText);
    source1.put(source1EntityName = null, new DefaultType(new TypeEntityDefinition(sourceType1, SchemaSpaceID.SOURCE, filter)));
    cell1.setSource(source1);
    source.addType(sourceType1);
    ListMultimap<String, Type> target1 = ArrayListMultimap.create();
    QName target1TypeName;
    String target1EntityName;
    TypeDefinition targetType1 = new DefaultTypeDefinition(target1TypeName = new QName("http://some.name.space/t1", "target1Type"));
    target1.put(target1EntityName = "Some name", new DefaultType(new TypeEntityDefinition(targetType1, SchemaSpaceID.TARGET, null)));
    cell1.setTarget(target1);
    target.addType(targetType1);
    align.addCell(cell1);
    // cell 2
    MutableCell cell2 = new DefaultCell();
    String id2;
    cell2.setTransformationIdentifier(id2 = "trans2");
    ListMultimap<String, ParameterValue> parameters2 = LinkedListMultimap.create();
    parameters2.put("test", new ParameterValue("4"));
    parameters2.put("tx", new ParameterValue("5"));
    parameters2.put("tx", new ParameterValue("6"));
    // complex parameter value
    if (supportsComplexParameters()) {
        TestAnnotation commentParam = new TestAnnotation();
        commentParam.setAuthor("Gerd");
        commentParam.setComment("Should a comment really be used as parameter?");
        parameters2.put("comment", new ParameterValue(Value.complex(commentParam)));
    }
    cell2.setTransformationParameters(parameters2);
    ListMultimap<String, Type> target2 = ArrayListMultimap.create();
    TypeDefinition targetType2 = new DefaultTypeDefinition(new QName("target2Type"));
    target2.put("Some other name", new DefaultType(new TypeEntityDefinition(targetType2, SchemaSpaceID.TARGET, null)));
    cell2.setTarget(target2);
    target.addType(targetType2);
    align.addCell(cell2);
    TestAnnotation ann1 = null;
    TestAnnotation ann2 = null;
    if (supportsAnnotations()) {
        // add some annotations
        ann1 = (TestAnnotation) cell2.addAnnotation("test");
        ann1.setAuthor("Simon");
        ann1.setComment("I have really no idea what I did here");
        ann2 = (TestAnnotation) cell2.addAnnotation("test");
        ann2.setAuthor("Hans");
        ann2.setComment("Me neither");
    }
    String doc1 = "This cell was created in memory of...\nSorry, forgotten.";
    String tag1 = "This is a tag";
    String tag2 = "awesome";
    if (supportsDocumentation()) {
        cell1.getDocumentation().put(null, doc1);
        cell1.getDocumentation().put("tag", tag1);
        cell1.getDocumentation().put("tag", tag2);
    }
    // write alignment
    File alignmentFile = tmp.newFile("alignment.xml");
    System.out.println(alignmentFile.getAbsolutePath());
    saveAlignment(align, new BufferedOutputStream(new FileOutputStream(alignmentFile)));
    // load alignment
    // TODO use and check reporter?
    MutableAlignment align2 = loadAlignment(new FileInputStream(alignmentFile), source, target);
    // compare loaded alignment
    Collection<? extends Cell> cells = align2.getCells();
    assertFalse(cells.isEmpty());
    Iterator<? extends Cell> it = cells.iterator();
    // cell 1
    Cell ncell1 = it.next();
    assertNotNull(ncell1);
    assertEquals(id1, ncell1.getTransformationIdentifier());
    // documentation
    if (supportsDocumentation()) {
        assertEquals(3, ncell1.getDocumentation().size());
        assertEquals(doc1, ncell1.getDocumentation().get(null).get(0));
        assertEquals(tag1, ncell1.getDocumentation().get("tag").get(0));
        assertEquals(tag2, ncell1.getDocumentation().get("tag").get(1));
    }
    if (supportsTransformationModes()) {
        assertEquals(TransformationMode.passive, ncell1.getTransformationMode());
    }
    // source 1
    ListMultimap<String, ? extends Entity> source1Entities = ncell1.getSource();
    assertEquals(1, source1Entities.size());
    List<? extends Entity> s1list = source1Entities.get(source1EntityName);
    assertFalse(s1list.isEmpty());
    assertEquals(source1TypeName, s1list.get(0).getDefinition().getDefinition().getName());
    // filter
    assertEquals(filter, s1list.get(0).getDefinition().getFilter());
    // target 1
    ListMultimap<String, ? extends Entity> target1Entities = ncell1.getTarget();
    assertEquals(1, target1Entities.size());
    List<? extends Entity> t1list = target1Entities.get(target1EntityName);
    assertFalse(t1list.isEmpty());
    assertEquals(target1TypeName, t1list.get(0).getDefinition().getDefinition().getName());
    // cell 2
    Cell ncell2 = it.next();
    assertNotNull(ncell2);
    assertEquals(id2, ncell2.getTransformationIdentifier());
    // parameters
    ListMultimap<String, ParameterValue> param2 = ncell2.getTransformationParameters();
    if (!supportsComplexParameters()) {
        assertEquals(2, param2.keySet().size());
        assertEquals(3, param2.values().size());
    } else {
        assertEquals(3, param2.keySet().size());
        assertEquals(4, param2.values().size());
        ParameterValue complexParam = param2.get("comment").get(0);
        assertTrue(complexParam.getValue() instanceof TestAnnotation);
    }
    // annotations
    if (supportsAnnotations()) {
        List<?> annotations = ncell2.getAnnotations("test");
        assertEquals(2, annotations.size());
        TestAnnotation nann1 = (TestAnnotation) annotations.get(0);
        assertEquals(ann1, nann1);
        TestAnnotation nann2 = (TestAnnotation) annotations.get(1);
        assertEquals(ann2, nann2);
    }
}
Also used : MutableCell(eu.esdihumboldt.hale.common.align.model.MutableCell) FilterGeoCqlImpl(eu.esdihumboldt.hale.common.filter.FilterGeoCqlImpl) DefaultTypeDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition) TypeDefinition(eu.esdihumboldt.hale.common.schema.model.TypeDefinition) DefaultTypeDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition) TypeEntityDefinition(eu.esdihumboldt.hale.common.align.model.impl.TypeEntityDefinition) DefaultSchema(eu.esdihumboldt.hale.common.schema.model.impl.DefaultSchema) DefaultAlignment(eu.esdihumboldt.hale.common.align.model.impl.DefaultAlignment) BufferedOutputStream(java.io.BufferedOutputStream) DefaultCell(eu.esdihumboldt.hale.common.align.model.impl.DefaultCell) BaseAlignmentCell(eu.esdihumboldt.hale.common.align.model.BaseAlignmentCell) Cell(eu.esdihumboldt.hale.common.align.model.Cell) ModifiableCell(eu.esdihumboldt.hale.common.align.model.ModifiableCell) MutableCell(eu.esdihumboldt.hale.common.align.model.MutableCell) ParameterValue(eu.esdihumboldt.hale.common.align.model.ParameterValue) DefaultType(eu.esdihumboldt.hale.common.align.model.impl.DefaultType) QName(javax.xml.namespace.QName) MutableAlignment(eu.esdihumboldt.hale.common.align.model.MutableAlignment) FileInputStream(java.io.FileInputStream) Type(eu.esdihumboldt.hale.common.align.model.Type) DefaultType(eu.esdihumboldt.hale.common.align.model.impl.DefaultType) DefaultCell(eu.esdihumboldt.hale.common.align.model.impl.DefaultCell) Filter(eu.esdihumboldt.hale.common.instance.model.Filter) FileOutputStream(java.io.FileOutputStream) File(java.io.File) Test(org.junit.Test)

Example 23 with DefaultTypeDefinition

use of eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition in project hale by halestudio.

the class MarkdownCellExplanationTest method createTestCell.

@SuppressWarnings("unused")
private Cell createTestCell() {
    // cell 1
    MutableCell cell1 = new DefaultCell();
    String id1;
    // must be an existing function
    cell1.setTransformationIdentifier(id1 = "eu.esdihumboldt.hale.align.formattedstring");
    ListMultimap<String, ParameterValue> parameters1 = LinkedListMultimap.create();
    // parameter that does not exist (for parameter list testing)
    parameters1.put("test", new ParameterValue("1"));
    parameters1.put("test", new ParameterValue("2"));
    // existing parameter
    parameters1.put("pattern", new ParameterValue("3"));
    cell1.setTransformationParameters(parameters1);
    ListMultimap<String, Type> source1 = ArrayListMultimap.create();
    QName source1TypeName;
    String source1EntityName;
    TypeDefinition sourceType1 = new DefaultTypeDefinition(source1TypeName = new QName("source1Type"));
    Filter filter = null;
    source1.put(source1EntityName = "var", new DefaultType(new TypeEntityDefinition(sourceType1, SchemaSpaceID.SOURCE, filter)));
    cell1.setSource(source1);
    ListMultimap<String, Type> target1 = ArrayListMultimap.create();
    QName target1TypeName;
    String target1EntityName;
    TypeDefinition targetType1 = new DefaultTypeDefinition(target1TypeName = new QName("http://some.name.space/t1", "target1Type"));
    target1.put(target1EntityName = null, new DefaultType(new TypeEntityDefinition(targetType1, SchemaSpaceID.TARGET, null)));
    cell1.setTarget(target1);
    return cell1;
}
Also used : MutableCell(eu.esdihumboldt.hale.common.align.model.MutableCell) ParameterValue(eu.esdihumboldt.hale.common.align.model.ParameterValue) DefaultType(eu.esdihumboldt.hale.common.align.model.impl.DefaultType) QName(javax.xml.namespace.QName) DefaultTypeDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition) TypeDefinition(eu.esdihumboldt.hale.common.schema.model.TypeDefinition) DefaultTypeDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition) Type(eu.esdihumboldt.hale.common.align.model.Type) DefaultType(eu.esdihumboldt.hale.common.align.model.impl.DefaultType) TypeEntityDefinition(eu.esdihumboldt.hale.common.align.model.impl.TypeEntityDefinition) DefaultCell(eu.esdihumboldt.hale.common.align.model.impl.DefaultCell) Filter(eu.esdihumboldt.hale.common.instance.model.Filter)

Example 24 with DefaultTypeDefinition

use of eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition in project hale by halestudio.

the class FilterTest method simpleFilterTestECQL.

@Test
public void simpleFilterTestECQL() throws CQLException {
    DefaultTypeDefinition stringType = new DefaultTypeDefinition(new QName("StringType"));
    stringType.setConstraint(Binding.get(String.class));
    DefaultTypeDefinition personDef = new DefaultTypeDefinition(new QName("PersonType"));
    personDef.addChild(new DefaultPropertyDefinition(new QName("Name"), personDef, stringType));
    DefaultTypeDefinition autoDef = new DefaultTypeDefinition(new QName("AutoType"));
    autoDef.addChild(new DefaultPropertyDefinition(new QName("Name"), autoDef, stringType));
    autoDef.addChild(new DefaultPropertyDefinition(new QName("Besitzer"), autoDef, personDef));
    MutableInstance auto = new DefaultInstance(autoDef, null);
    auto.addProperty(new QName("Name"), "Mein Porsche");
    MutableInstance ich = new DefaultInstance(personDef, null);
    ich.addProperty(new QName("Name"), "Ich");
    auto.addProperty(new QName("Besitzer"), ich);
    Filter filter;
    filter = new FilterGeoECqlImpl("Name = 'Mein Porsche'");
    assertTrue(filter.match(auto));
    Filter filter1 = new FilterGeoECqlImpl("Name like '%Porsche%'");
    assertTrue(filter1.match(auto));
}
Also used : DefaultTypeDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition) DefaultPropertyDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultPropertyDefinition) Filter(eu.esdihumboldt.hale.common.instance.model.Filter) QName(javax.xml.namespace.QName) DefaultInstance(eu.esdihumboldt.hale.common.instance.model.impl.DefaultInstance) MutableInstance(eu.esdihumboldt.hale.common.instance.model.MutableInstance) Test(org.junit.Test)

Example 25 with DefaultTypeDefinition

use of eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition in project hale by halestudio.

the class Retype method doStructuralRename.

private MutableInstance doStructuralRename(FamilyInstance source, TypeDefinition targetType, boolean ignoreNamespaces, boolean copyGeometries, TransformationLog log) {
    // create a dummy child definition for the structural rename
    PropertyDefinition dummyProp = new DefaultPropertyDefinition(new QName("dummyProp"), new DefaultTypeDefinition(new QName("dummyType")), targetType);
    Object result = Rename.structuralRename(source, dummyProp, ignoreNamespaces, getInstanceFactory(), copyGeometries);
    if (result instanceof MutableInstance) {
        return ((MutableInstance) result);
    } else {
        log.error(log.createMessage("Structural rename in type transformation failed", null));
        return null;
    }
}
Also used : DefaultTypeDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition) DefaultPropertyDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultPropertyDefinition) QName(javax.xml.namespace.QName) MutableInstance(eu.esdihumboldt.hale.common.instance.model.MutableInstance) DefaultPropertyDefinition(eu.esdihumboldt.hale.common.schema.model.impl.DefaultPropertyDefinition) PropertyDefinition(eu.esdihumboldt.hale.common.schema.model.PropertyDefinition)

Aggregations

DefaultTypeDefinition (eu.esdihumboldt.hale.common.schema.model.impl.DefaultTypeDefinition)28 QName (javax.xml.namespace.QName)23 DefaultPropertyDefinition (eu.esdihumboldt.hale.common.schema.model.impl.DefaultPropertyDefinition)18 TypeDefinition (eu.esdihumboldt.hale.common.schema.model.TypeDefinition)15 PropertyDefinition (eu.esdihumboldt.hale.common.schema.model.PropertyDefinition)7 Filter (eu.esdihumboldt.hale.common.instance.model.Filter)5 PropertyEntityDefinition (eu.esdihumboldt.hale.common.align.model.impl.PropertyEntityDefinition)4 IOProviderConfigurationException (eu.esdihumboldt.hale.common.core.io.IOProviderConfigurationException)4 IOMessageImpl (eu.esdihumboldt.hale.common.core.io.report.impl.IOMessageImpl)4 DefaultGroupPropertyDefinition (eu.esdihumboldt.hale.common.schema.model.impl.DefaultGroupPropertyDefinition)4 DefaultSchema (eu.esdihumboldt.hale.common.schema.model.impl.DefaultSchema)4 IOException (java.io.IOException)4 Test (org.junit.Test)4 TypeEntityDefinition (eu.esdihumboldt.hale.common.align.model.impl.TypeEntityDefinition)3 MutableInstance (eu.esdihumboldt.hale.common.instance.model.MutableInstance)3 GeometryProperty (eu.esdihumboldt.hale.common.schema.geometry.GeometryProperty)3 Cell (eu.esdihumboldt.hale.common.align.model.Cell)2 ChildContext (eu.esdihumboldt.hale.common.align.model.ChildContext)2 EntityDefinition (eu.esdihumboldt.hale.common.align.model.EntityDefinition)2 MutableCell (eu.esdihumboldt.hale.common.align.model.MutableCell)2