public DataBlockDefinitionType(final DataBlockDefinition db) { if (db != null) { this.id = db.getId(); if (db.getEncoding() != null) { this.encoding = new AbstractEncodingPropertyType(db.getEncoding()); } if (db.getComponents() != null) { final ObjectFactory factory = new ObjectFactory(); this.components = new ArrayList<JAXBElement<? extends AbstractDataComponentType>>(); for (AbstractDataComponent c : db.getComponents()) { if (c instanceof BooleanType) { this.components.add(factory.createBoolean(new BooleanType((BooleanType) c))); } else if (c instanceof ConditionalValueType) { this.components.add( factory.createConditionalValue(new ConditionalValueType((ConditionalValueType) c))); } else if (c instanceof DataArrayType) { this.components.add(factory.createDataArray(new DataArrayType((DataArrayType) c))); } else if (c instanceof DataRecordType) { this.components.add(factory.createDataRecord(new DataRecordType((DataRecordType) c))); } else if (c instanceof EnvelopeType) { this.components.add(factory.createEnvelope(new EnvelopeType((EnvelopeType) c))); } else if (c instanceof GeoLocationArea) { this.components.add( factory.createGeoLocationArea(new GeoLocationArea((GeoLocationArea) c))); } else if (c instanceof PositionType) { this.components.add(factory.createPosition(new PositionType((PositionType) c))); } else if (c instanceof QuantityType) { this.components.add(factory.createQuantity(new QuantityType((QuantityType) c))); } else if (c instanceof SimpleDataRecordType) { this.components.add( factory.createSimpleDataRecord(new SimpleDataRecordType((SimpleDataRecordType) c))); } else if (c instanceof SquareMatrixType) { this.components.add( factory.createSquareMatrix(new SquareMatrixType((SquareMatrixType) c))); } else if (c instanceof TimeType) { this.components.add(factory.createTime(new TimeType((TimeType) c))); } else if (c instanceof VectorType) { this.components.add(factory.createVector(new VectorType((VectorType) c))); } else if (c instanceof AbstractDataRecordType) { this.components.add( factory.createAbstractDataRecord( new AbstractDataRecordType((AbstractDataRecordType) c))); } else if (c instanceof AbstractDataComponentType) { this.components.add( factory.createAbstractDataComponent( new AbstractDataComponentType((AbstractDataComponentType) c))); } else { throw new IllegalArgumentException( "unexpected type for component:" + c.getClass().getName()); } } } } }
/** * créé un nouveau resultat d'observation. Liste de valeur decrite dans swe:DatablockDefinition de * type simple, pour valeur scalaire ou textuelle. * * @param id l'identifiant du resultat. * @param components liste de composant data record. * @param encoding encodage des données. */ public DataBlockDefinitionType( final String id, final Collection<? extends AbstractDataComponentType> components, final AbstractEncodingType encoding) { this.id = id; this.components = new ArrayList<JAXBElement<? extends AbstractDataComponentType>>(); final ObjectFactory factory = new ObjectFactory(); for (AbstractDataComponent c : components) { if (c instanceof BooleanType) { this.components.add(factory.createBoolean((BooleanType) c)); } else if (c instanceof ConditionalValueType) { this.components.add(factory.createConditionalValue((ConditionalValueType) c)); } else if (c instanceof DataArrayType) { this.components.add(factory.createDataArray((DataArrayType) c)); } else if (c instanceof DataRecordType) { this.components.add(factory.createDataRecord((DataRecordType) c)); } else if (c instanceof EnvelopeType) { this.components.add(factory.createEnvelope((EnvelopeType) c)); } else if (c instanceof GeoLocationArea) { this.components.add(factory.createGeoLocationArea((GeoLocationArea) c)); } else if (c instanceof PositionType) { this.components.add(factory.createPosition((PositionType) c)); } else if (c instanceof QuantityType) { this.components.add(factory.createQuantity((QuantityType) c)); } else if (c instanceof SimpleDataRecordType) { this.components.add(factory.createSimpleDataRecord((SimpleDataRecordType) c)); } else if (c instanceof SquareMatrixType) { this.components.add(factory.createSquareMatrix((SquareMatrixType) c)); } else if (c instanceof TimeType) { this.components.add(factory.createTime((TimeType) c)); } else if (c instanceof VectorType) { this.components.add(factory.createVector((VectorType) c)); } else if (c instanceof AbstractDataArrayType) { this.components.add(factory.createAbstractDataArray((AbstractDataArrayType) c)); } else if (c instanceof AbstractDataRecordType) { this.components.add(factory.createAbstractDataRecord((AbstractDataRecordType) c)); } else if (c instanceof AbstractDataComponentType) { this.components.add(factory.createAbstractDataComponent((AbstractDataComponentType) c)); } else { throw new IllegalArgumentException( "unexpected type for component:" + c.getClass().getName()); } } this.encoding = new AbstractEncodingPropertyType(encoding); }