void exportOperationsMetadata() throws XMLStreamException { List<Operation> operations = new LinkedList<Operation>(); List<DCP> dcps = null; try { DCP dcp = new DCP( new URL( OGCFrontController.getHttpGetURL() ), null ); dcps = Collections.singletonList( dcp ); } catch ( MalformedURLException e ) { // should never happen } List<Domain> params = new ArrayList<Domain>(); List<Domain> constraints = new ArrayList<Domain>(); constraints.add( new Domain( "GetEncoding", Collections.singletonList( "KVP" ) ) ); List<OMElement> mdEls = new ArrayList<OMElement>(); operations.add( new Operation( "GetCapabilities", dcps, params, constraints, mdEls ) ); operations.add( new Operation( "GetTile", dcps, params, constraints, mdEls ) ); operations.add( new Operation( "GetFeatureInfo", dcps, params, constraints, mdEls ) ); OperationsMetadata operationsMd = new OperationsMetadata( operations, params, constraints, null ); exportOperationsMetadata110( writer, operationsMd ); }
params.add( new Domain( "AcceptVersions", offeredVersionStrings ) ); params.add( new Domain( "AcceptFormats", Collections.singletonList( "text/xml" ) ) ); List<String> sections = new ArrayList<String>(); sections.add( "ServiceIdentification" ); sections.add( "FeatureTypeList" ); sections.add( "Filter_Capabilities" ); params.add( new Domain( "Sections", sections ) ); constraints.add( new Domain( "AutomaticDataLocking", "TRUE" ) ); constraints.add( new Domain( "PreservesSiblingOrder", "TRUE" ) ); if ( supportedEncodings.isEncodingSupported( Transaction, "POST" ) ) operations.add( new Operation( Transaction.name(), post, null, constraints, null ) ); globalParams.add( new Domain( "version", offeredVersionStrings ) ); globalParams.add( new Domain( "srsName", srsNames ) ); globalParams.add( new Domain( "outputFormat", new ArrayList<String>( master.getOutputFormats() ) ) ); resolve.add( "remote" ); resolve.add( "all" ); globalParams.add( new Domain( "resolve", resolve ) ); constraints.add( new Domain( "ImplementsSimpleWFS", "TRUE" ) ); constraints.add( new Domain( "ImplementsBasicWFS", "TRUE" ) ); if ( enableTransactions ) { constraints.add( new Domain( "ImplementsTransactionalWFS", "TRUE" ) ); constraints.add( new Domain( "ImplementsLockingWFS", "TRUE" ) );
@Override protected Domain parseDomain( OMElement domainEl ) { // <attribute name="name" type="string" use="required"> String name = getNodeAsString( domainEl, new XPath( "@name", nsContext ), null ); // <element name="Value" type="string" maxOccurs="unbounded"> String[] valuesArray = getNodesAsStrings( domainEl, new XPath( "ows:Value", nsContext ) ); List<Values> values = new ArrayList<Values>( valuesArray.length ); for ( String value : valuesArray ) { values.add( new Value( value ) ); } PossibleValues possibleValues = new AllowedValues( values ); // <element ref="ows:Metadata" minOccurs="0" maxOccurs="unbounded"> List<OMElement> metadataEls = getElements( domainEl, new XPath( "ows:Metadata", nsContext ) ); return new Domain( name, possibleValues, null, null, null, null, null, metadataEls ); }
params.add( new Domain( "outputFormat", outputFormats ) ); addOperation( DescribeFeatureType, params, getAndPost, post, get, operations ); params.add( new Domain( "AcceptVersions", offeredVersionStrings ) ); params.add( new Domain( "AcceptFormats", Collections.singletonList( "text/xml" ) ) ); params.add( new Domain( "resultType", Arrays.asList( new String[] { "results", "hits" } ) ) ); params.add( new Domain( "outputFormat", outputFormats ) ); addOperation( GetFeature, params, getAndPost, post, get, operations ); params.add( new Domain( "resultType", Arrays.asList( new String[] { "results", "hits" } ) ) ); params.add( new Domain( "outputFormat", outputFormats ) ); addOperation( GetFeatureWithLock, params, getAndPost, post, get, operations ); params.add( new Domain( "outputFormat", outputFormats ) ); addOperation( GetGmlObject, params, getAndPost, post, get, operations ); params.add( new Domain( "lockAction", Arrays.asList( new String[] { "ALL", "SOME" } ) ) ); addOperation( LockFeature, params, getAndPost, post, get, operations ); params.add( new Domain( "inputFormat", outputFormats ) ); params.add( new Domain( "idgen", Arrays.asList( new String[] { "GenerateNew", "UseExisting", "ReplaceDuplicate" } ) ) ); params.add( new Domain( "releaseAction", Arrays.asList( new String[] { "ALL", "SOME" } ) ) ); addOperation( Transaction, params, getAndPost, post, get, operations );
return new Domain( name, possibleValues, defaultValue, meaning, dataType, valuesUnitUom, valuesUnitRefSys, metadataEls );