// gather the attributes from the first feature collection
for (AttributeDescriptor descriptor : firstFeatureCollectionSchema
.getAttributeDescriptors()) {
if (!(descriptor.getType() instanceof GeometryTypeImpl)
|| (!geometryDescriptor.getName().equals(descriptor.getName()))) {
AttributeTypeBuilder builder = new AttributeTypeBuilder();
builder.setName(this.firstFeatures.features().next().getFeatureType().getName()
.getLocalPart()
+ "_" + descriptor.getName());
builder.setNillable(descriptor.isNillable());
builder.setBinding(descriptor.getType().getBinding());
builder.setMinOccurs(descriptor.getMinOccurs());
builder.setMaxOccurs(descriptor.getMaxOccurs());
builder.setDefaultValue(descriptor.getDefaultValue());
builder.setCRS(this.firstFeatures.features().next().getFeatureType()
.getCoordinateReferenceSystem());
AttributeDescriptor intersectionDescriptor = builder.buildDescriptor(
this.firstFeatures.features().next().getFeatureType().getName()
.getLocalPart()
+ "_" + descriptor.getName(), descriptor.getType());
tb.add(intersectionDescriptor);
tb.addBinding(descriptor.getType());
} else {
tb.add(descriptor);
}
}
// gather the attributes from the second feature collection
geometryDescriptor = secondFeatureCollectionSchema.getGeometryDescriptor();
for (AttributeDescriptor descriptor : secondFeatureCollectionSchema
.getAttributeDescriptors()) {
if (!(descriptor.getType() instanceof GeometryTypeImpl)
|| (!geometryDescriptor.getName().equals(descriptor.getName()))) {
AttributeTypeBuilder builder = new AttributeTypeBuilder();
builder.setName(this.secondFeatures.features().next().getFeatureType()
.getName().getLocalPart()
+ "_" + descriptor.getName());
builder.setNillable(descriptor.isNillable());
builder.setBinding(descriptor.getType().getBinding());
builder.setMinOccurs(descriptor.getMinOccurs());
builder.setMaxOccurs(descriptor.getMaxOccurs());
builder.setDefaultValue(descriptor.getDefaultValue());
builder.setCRS(this.secondFeatures.features().next().getFeatureType()
.getCoordinateReferenceSystem());
builder.setNamespaceURI(this.secondFeatures.features().next().getFeatureType()
.getName().getNamespaceURI());
builder.setDefaultValue(descriptor.getDefaultValue());
AttributeDescriptor intersectionDescriptor = builder.buildDescriptor(
this.secondFeatures.features().next().getFeatureType().getName()
.getLocalPart()
+ "_" + descriptor.getName(), descriptor.getType());
tb.addBinding(descriptor.getType());
tb.add(intersectionDescriptor);