@Override public GMLObject getObject( String uri, String baseURL ) { if ( uri.startsWith( "#" ) ) { try { return fs.getObjectById( uri.substring( 1 ) ); } catch ( FeatureStoreException e ) { throw new ReferenceResolvingException( e.getMessage(), e ); } } throw new ReferenceResolvingException( "Resolving of remote references is not implemented yet." ); } }
@Override public boolean equals( Object obj ) { try { if ( getReferencedObject() != null ) { return getReferencedObject().equals( obj ); } } catch ( ReferenceResolvingException e ) { LOG.debug( "CRS reference could not be resolved: {}", e.getLocalizedMessage() ); } return getURI().equals( obj ); }
private final Envelope decodePropValue( String s ) { if ( s == null || s.isEmpty() ) { return null; } String[] parts = StringUtils.split( s, "," ); String srsName = parts[0]; CRSRef crs; try { crs = CRSManager.getCRSRef( srsName ); crs.getReferencedObject(); } catch ( ReferenceResolvingException e ) { throw new IllegalArgumentException( e.getMessage() ); } double[] coords = new double[parts.length - 1]; for ( int i = 0; i < parts.length - 1; i++ ) { coords[i] = Double.parseDouble( parts[i + 1].trim() ); } if ( coords.length % 2 != 0 ) { throw new IllegalArgumentException(); } double[] min = new double[coords.length / 2]; double[] max = new double[coords.length / 2]; for ( int i = 0, dim = coords.length / 2; i < dim; i++ ) { min[i] = coords[i]; max[i] = coords[i + dim]; } return new GeometryFactory().createEnvelope( min, max, crs ); }
@Override public int hashCode() { try { if ( getReferencedObject() != null ) { return getReferencedObject().hashCode(); } } catch ( ReferenceResolvingException e ) { LOG.debug( "CRS reference could not be resolved: {}", e.getLocalizedMessage() ); } return getURI().hashCode(); }
@Override public Object getObject( String uri, String baseURL ) { if ( uri.startsWith( "#" ) ) { // OBJEKT-> keine REFERENZ! // CACHE return store.getCRSResource( uri.substring( 1 ), resourceType ); } throw new ReferenceResolvingException( "Deegree CRS Resolver does not support remote references." ); } }
@Override public int hashCode() { try { if ( getReferencedObject() != null ) { return getReferencedObject().hashCode(); } } catch ( ReferenceResolvingException e ) { LOG.debug( "CRSResource reference could not be resolved: {}", e.getLocalizedMessage() ); } return getURI().hashCode(); } }
/** * Returns the referenced {@link Object} instance (may trigger resolving and fetching it). * * @return the referenced {@link Object} instance * @throws ReferenceResolvingException * if the reference cannot be resolved */ @SuppressWarnings("unchecked") public synchronized T getReferencedObject() throws ReferenceResolvingException { if ( exception != null ) { throw exception; } if ( object == null ) { try { object = (T) resolver.getObject( uri, baseURL ); } catch ( ReferenceResolvingException e ) { throw exception = e; } if ( object == null ) { String msg = "Unable to resolve reference to '" + uri + "'."; throw exception = new ReferenceResolvingException( msg ); } } return object; }
} catch ( ReferenceResolvingException e ) { transformer = null; LOG.debug( "CRS could not be resolved: {}", e.getLocalizedMessage() );
/** * Resolves all local references that have been added before against the added objects. * * @throws ReferenceResolvingException * if a local reference cannot be resolved */ public void resolveLocalRefs() throws ReferenceResolvingException { for ( GMLReference<?> ref : localRefs ) { String id = ref.getURI().substring( 1 ); LOG.debug( "Resolving reference to object '" + id + "'" ); if ( ref.getReferencedObject() == null ) { String msg = "Cannot resolve reference to object with id '" + id + "'. There is no object with this id in the document."; throw new ReferenceResolvingException( msg ); } } }
} catch ( ReferenceResolvingException e ) { LOG.trace( "Stack trace:", e ); throw new OWSException( e.getLocalizedMessage(), "InvalidParameterValue" );
private GMLObject fetchExternalGmlObject( String uri, String baseURL ) { GMLObject object = null; try { URL resolvedURL = null; if ( baseURL != null ) { resolvedURL = new URL( new URL( baseURL ), uri ); } else { resolvedURL = new URL( uri ); } GMLStreamReader gmlReader = createGMLStreamReader( version, resolvedURL ); gmlReader.setApplicationSchema( schema ); object = gmlReader.read(); gmlReader.close(); LOG.debug( "Read GML object: id='" + object.getId() + "'" ); } catch ( Throwable e ) { String msg = "Unable to resolve external object reference to '" + uri + "': " + e.getMessage(); throw new ReferenceResolvingException( msg ); } return object; }
public GetMap( List<Pair<String, String>> layers, int width, int height, Envelope boundingBox, String format, boolean transparent ) throws OWSException { for ( Pair<String, String> layer : layers ) { this.layers.add( new LayerRef( layer.first ) ); this.styles.add( layer.second != null ? new StyleRef( layer.second ) : null ); } this.width = width; this.height = height; this.bbox = boundingBox; this.crs = boundingBox.getCoordinateSystem(); this.bgcolor = white; this.format = format; this.transparent = transparent; try { scale = RenderHelper.calcScaleWMS130( width, height, bbox, crs, pixelSize ); LOG.debug( "GetMap request has a WMS 1.3.0/SLD scale of '{}' (adapted to pixel size of {}).", scale, pixelSize ); resolution = max( bbox.getSpan0() / width, bbox.getSpan1() / height ); LOG.debug( "Resolution per pixel is {}.", resolution ); } catch ( ReferenceResolvingException e ) { LOG.trace( "Stack trace:", e ); throw new OWSException( e.getLocalizedMessage(), "InvalidParameterValue" ); } }
private Feature resolveInternalFeature( ReferenceResolvingException e ) { String uri = getURI(); GMLObject object = this.internalResolver.getObject( uri, getBaseURL() ); if ( object != null ) { if ( object instanceof Feature ) { LOG.info( "Feature with uri {} could be resolved by the internal resolver.", uri ); resolve( (Feature) object ); this.internalResolved = true; return (Feature) object; } String msg = "Object with uri '" + uri + "' could be resolved from internal resolver but is no Feature instance."; throw exception = new ReferenceResolvingException( msg ); } throw e; }
/** * @param map * @param version * @param service * @throws OWSException */ public GetMap( Map<String, String> map, Version version, MapOptionsMaps exts ) throws OWSException { if ( version.equals( VERSION_111 ) ) { parse111( map, exts ); } if ( version.equals( VERSION_130 ) ) { parse130( map, exts ); } parameterMap.putAll( map ); try { scale = RenderHelper.calcScaleWMS130( width, height, bbox, crs, pixelSize ); LOG.debug( "GetMap request has a WMS 1.3.0/SLD scale of '{}' (adapted to pixel size of {}).", scale, pixelSize ); resolution = max( bbox.getSpan0() / width, bbox.getSpan1() / height ); LOG.debug( "Resolution per pixel is {}.", resolution ); } catch ( ReferenceResolvingException e ) { LOG.trace( "Stack trace:", e ); LOG.warn( "The scale of a GetMap request could not be calculated: '{}'.", e.getLocalizedMessage() ); } }
@Override public boolean equals( java.lang.Object obj ) { if ( this == obj ) return true; if ( obj == null ) return false; T referencedObject = getReferencedObject(); try { if ( referencedObject != null ) { return referencedObject.equals( obj ); } } catch ( ReferenceResolvingException e ) { LOG.debug( "CRSResource reference could not be resolved: {}", e.getLocalizedMessage() ); } if ( obj instanceof Reference<?> ) { Reference<?> other = (Reference<?>) obj; if ( getURI() == null ) { if ( other.getURI() != null ) return false; } else if ( !getURI().equals( other.getURI() ) ) return false; } return getURI().equals( obj ); }
e.getLocalizedMessage() ); LOG.debug( "Could not resolve properties when calculating envelope: {}", e.getLocalizedMessage() );