public GmlXlinkOptions( ResolveParams params ) { if ( params.getDepth() != null ) { if ( "*".equals( params.getDepth() ) ) { resolveDepth = -1; } else { resolveDepth = parseInt( params.getDepth() ); } } else { resolveDepth = 0; } this.currentLevel = 0; this.mode = params.getMode(); if ( params.getTimeout() != null ) { remoteTimeoutInMilliseconds = params.getTimeout().longValue() * 1000; } else { remoteTimeoutInMilliseconds = 60 * 1000; } }
/** * Creates a new {@link PropertyName} instance. * * @param propertyName * name of the targeted property, must not be <code>null</code> * @param resolveParams * parameters for controlling the resolution of references of the result set, may be <code>null</code> * @param resolvePath * ....may be <code>null</code> */ public PropertyName( ValueReference propertyName, ResolveParams resolveParams, ValueReference resolvePath ) { this.propertyName = propertyName; if ( resolveParams != null ) { this.resolveParams = resolveParams; } else { this.resolveParams = new ResolveParams( null, null, null ); } this.resolvePath = resolvePath; }
private void updateResolveTimeOut( ResolveParams resolveParams ) { if ( resolveParams.getTimeout() == null && resolveTimeOutInSeconds != null ) resolveParams.setTimeout( resolveTimeOutInSeconds ); }
String traverseXlinkDepth = getFeature.getResolveParams().getDepth(); if ( ( traverseXlinkDepth != null ) && ( !traverseXlinkDepth.equals( "" ) ) ) { writer.writeAttribute( "traverseXlinkDepth", traverseXlinkDepth ); BigInteger resolveTimeout = getFeature.getResolveParams().getTimeout(); if ( resolveTimeout != null ) { BigInteger traverseXlinkExpiry = resolveTimeout.divide( BigInteger.valueOf( 60 ) );
String xLinkTemplate = getObjectXlinkTemplate( request.getVersion(), gmlVersion ); if ( request.getResolveParams().getDepth() != null ) { if ( "*".equals( request.getResolveParams().getDepth() ) ) { traverseXLinkDepth = -1; } else { try { traverseXLinkDepth = Integer.parseInt( request.getResolveParams().getDepth() ); } catch ( NumberFormatException e ) { String msg = Messages.get( "WFS_TRAVERSEXLINKDEPTH_INVALID", request.getResolveParams().getDepth() ); throw new OWSException( new InvalidParameterValueException( msg ) );
if ( request.getResolveParams().getDepth() != null ) { if ( "*".equals( request.getResolveParams().getDepth() ) ) { traverseXLinkDepth = -1; } else { try { traverseXLinkDepth = Integer.parseInt( request.getResolveParams().getDepth() ); } catch ( NumberFormatException e ) { String msg = Messages.get( "WFS_TRAVERSEXLINKDEPTH_INVALID", request.getResolveParams().getDepth() ); throw new OWSException( new InvalidParameterValueException( msg ) ); if ( request.getResolveParams().getTimeout() != null ) { resolveTimeout = request.getResolveParams().getTimeout();
private static void exportResolveParameters( GetFeature getFeature, Map<String, String> kvp ) { ResolveParams resolveParams = getFeature.getResolveParams(); if ( resolveParams != null ) { ResolveMode resolveMode = resolveParams.getMode(); if ( resolveMode != null ) { kvp.put( "RESOLVE", resolveMode.name().toLowerCase() ); } String resolveDepth = getFeature.getResolveParams().getDepth(); if ( resolveDepth != null && !resolveDepth.equals( "" ) ) { kvp.put( "RESOLVEDEPTH", resolveDepth ); } BigInteger resolveTimeout = getFeature.getResolveParams().getTimeout(); if ( resolveTimeout != null ) { kvp.put( "RESOLVETIMEOUT", resolveTimeout.toString() ); } } }
protected static ResolveParams parseStandardResolveParameters110( Map<String, String> kvpUC ) { // optional: 'TRAVERSEXLINKDEPTH' String traverseXlinkDepth = kvpUC.get( "TRAVERSEXLINKDEPTH" ); // optional: 'TRAVERSEXLINKEXPIRY' BigInteger resolveTimeout = null; BigInteger traverseXlinkExpiry = getBigInt( kvpUC, "TRAVERSEXLINKEXPIRY", null ); if ( traverseXlinkExpiry != null ) { resolveTimeout = BigInteger.valueOf( 60 ).multiply( traverseXlinkExpiry ); } return new ResolveParams( null, traverseXlinkDepth, resolveTimeout ); }
if ( nextProperty != null ) { ResolveParams resolveParams = nextProperty.getResolveParams(); if ( resolveParams.getMode() == null && resolveParams.getDepth() == null && resolveParams.getTimeout() == null ) { QName qname = nextProperty.getPropertyName().getAsQName(); if ( qname != null ) { writer.writeStartElement( WFSConstants.WFS_PREFIX, "XlinkPropertyName", WFSConstants.WFS_NS ); String traverseXlinkDepth = resolveParams.getDepth(); BigInteger traverseXlinkExpiry = resolveParams.getTimeout(); if ( traverseXlinkExpiry != null ) { traverseXlinkExpiry = traverseXlinkExpiry.divide( BigInteger.valueOf( 60 ) );
protected static ResolveParams parseStandardResolveParameters200( Map<String, String> kvpUC ) { // optional: RESOLVE ResolveMode resolve = null; String resolveString = kvpUC.get( "RESOLVE" ); if ( resolveString != null ) { if ( resolveString.equalsIgnoreCase( "local" ) ) { resolve = ResolveMode.LOCAL; } else if ( resolveString.equalsIgnoreCase( "remote" ) ) { resolve = ResolveMode.REMOTE; } else if ( resolveString.equalsIgnoreCase( "none" ) ) { resolve = ResolveMode.NONE; } else if ( resolveString.equalsIgnoreCase( "all" ) ) { resolve = ResolveMode.ALL; } else { LOG.warn( "Invalid value (='{}') for resolve parameter.", resolveString ); } } // optional: RESOLVEDEPTH String resolveDepth = kvpUC.get( "RESOLVEDEPTH" ); // optional: RESOLVETIMEOUT BigInteger resolveTimeout = getBigInt( kvpUC, "RESOLVETIMEOUT", null ); return new ResolveParams( resolve, resolveDepth, resolveTimeout ); }
PropertyName propName = (PropertyName) clause; ResolveParams resolveParams = propName.getResolveParams(); if ( resolveParams.getDepth() != null || resolveParams.getMode() != null || resolveParams.getTimeout() != null ) { throw new OWSException( "GetFeatureWithLock does not support XlinkPropertyName", OPTION_NOT_SUPPORTED );
/** * Creates a new {@link GetFeature} request. * * @param version * protocol version, must not be <code>null</code> * @param handle * client-generated identifier, may be <code>null</code> * @param presentationParams * parameters for controlling the presentation of the result set, may be <code>null</code> * @param resolveParams * parameters for controlling the resolution of references of the result set, may be <code>null</code> * @param queries * the queries to be performed in the request, must not be <code>null</code> and must contain at least * one entry */ public GetFeature( Version version, String handle, StandardPresentationParams presentationParams, ResolveParams resolveParams, List<Query> queries ) { super( version, handle ); if ( presentationParams != null ) { this.presentationParams = presentationParams; } else { this.presentationParams = new StandardPresentationParams( null, null, null, null ); } if ( resolveParams != null ) { this.resolveParams = resolveParams; } else { this.resolveParams = new ResolveParams( null, null, null ); } this.queries = queries; }
public ResolveParams parseStandardResolveParameters110( OMElement requestEl ) { String traverseXlinkDepth = getNodeAsString( rootElement, new XPath( "@traverseXlinkDepth", nsContext ), null ); String traverseXlinkExpiryStr = getNodeAsString( rootElement, new XPath( "@traverseXlinkExpiry", nsContext ), null ); BigInteger resolveTimeout = null; if ( traverseXlinkExpiryStr != null ) { resolveTimeout = new BigInteger( traverseXlinkExpiryStr ).multiply( BigInteger.valueOf( 60 ) ); } return new ResolveParams( null, traverseXlinkDepth, resolveTimeout ); }
protected static PropertyName[][] getXLinkPropNames( PropertyName[][] propertyNames, String[][] ptxDepthAr, Integer[][] ptxExpAr ) { PropertyName[][] result = null; if ( propertyNames != null ) { result = new PropertyName[propertyNames.length][]; for ( int i = 0; i < propertyNames.length; i++ ) { result[i] = new PropertyName[propertyNames[i].length]; for ( int j = 0; j < propertyNames[i].length; j++ ) { if ( ptxDepthAr != null || ptxExpAr != null ) { String resolveDepth = ptxDepthAr[i][j]; BigInteger resolveTimeout = ptxExpAr[i][j] == null ? null : BigInteger.valueOf( ptxExpAr[i][j] * 60 ); ResolveParams propResolveParams = new ResolveParams( null, resolveDepth, resolveTimeout ); result[i][j] = new PropertyName( propertyNames[i][j].getPropertyName(), propResolveParams, null ); } else { result[i][j] = propertyNames[i][j]; } } } } return result; }
public ResolveParams parseStandardResolveParameters200( OMElement element ) { // <xsd:attribute name="resolve" type="wfs:ResolveValueType" default="none"/> ResolveMode resolve = null; String resolveString = getNodeAsString( element, new XPath( "@resolve", nsContext ), null ); if ( resolveString != null ) { if ( resolveString.equalsIgnoreCase( "local" ) ) { resolve = ResolveMode.LOCAL; } else if ( resolveString.equalsIgnoreCase( "remote" ) ) { resolve = ResolveMode.REMOTE; } else if ( resolveString.equalsIgnoreCase( "none" ) ) { resolve = ResolveMode.NONE; } else if ( resolveString.equalsIgnoreCase( "all" ) ) { resolve = ResolveMode.ALL; } else { LOG.warn( "Invalid value (='{}') for resolve attribute.", resolveString ); } } // <xsd:attribute name="resolveDepth" type="wfs:positiveIntegerWithStar" default="*"/> String resolveDepth = getNodeAsString( element, new XPath( "@resolveDepth", nsContext ), null ); // <xsd:attribute name="resolveTimeout" type="xsd:positiveInteger" default="300"/> BigInteger resolveTimeout = getNodeAsBigInt( element, new XPath( "@resolveTimeout", nsContext ), null ); return new ResolveParams( resolve, resolveDepth, resolveTimeout ); }
new ResolveParams( null, xlinkDepth, resolveTimeout ), null ); propNames.add( xlinkPropName );