tim@129: package de.intevation.gnv.geobackend.sde.datasources; tim@129: tim@129: import com.esri.sde.sdk.client.SDEPoint; tim@129: import com.esri.sde.sdk.client.SeError; tim@129: import com.esri.sde.sdk.client.SeException; sascha@886: tim@263: import com.vividsolutions.jts.geom.Coordinate; tim@263: import com.vividsolutions.jts.geom.Geometry; tim@879: import com.vividsolutions.jts.geom.LineString; tim@383: import com.vividsolutions.jts.geom.Point; tim@263: import com.vividsolutions.jts.geom.Polygon; tim@129: sascha@886: import org.apache.log4j.Logger; sascha@886: tim@129: /** tim@129: * The class ArcSDEUtils fulfills the following purposes: tim@263: * tim@129: * @author blume tim@884: * @author Tim Englich tim@129: */ tim@129: public class ArcSDEUtils { tim@129: tim@129: /** tim@129: * Default Logging instance tim@129: */ tim@129: private static Logger sLogger = Logger.getLogger(ArcSDEUtils.class); tim@129: tim@129: /** tim@884: * Prints an SEEsception into the Logger of this Class tim@884: * @param exception tim@129: */ tim@129: public static void printError(SeException exception) { tim@129: tim@129: SeError error = exception.getSeError(); tim@129: tim@129: sLogger.debug("\n ArcSDE Error Number : " + error.getSdeError()); tim@129: sLogger.debug(" Error Description : " + error.getErrDesc()); tim@129: tim@129: int extError = error.getExtError(); tim@129: if (extError != 0) tim@129: sLogger.debug(" Extended Error Number : " + extError); tim@129: tim@129: String desc = error.getSdeErrMsg(); tim@129: if (desc != null && desc.length() != 0) tim@129: sLogger.debug(" Extended Error Description : " + desc); tim@129: tim@129: desc = error.getExtErrMsg(); tim@129: if (desc != null && desc.length() != 0) tim@129: sLogger.debug(" Extended Error Description : " + desc); tim@129: tim@129: sLogger.debug(exception); tim@129: tim@884: } tim@129: tim@884: /** tim@884: * Generate an SDEPoint-Array from a given Geometry. tim@884: * This Method did not put the Holes to the Array. tim@884: * @param g The Geometry which should be converted. tim@884: * @return an SDEPoint-Array from a given Ggeometry. tim@884: */ tim@263: public SDEPoint[] createPoints(Geometry g) { tim@129: sLogger.debug("createPoints()"); tim@263: Coordinate[] coords = null; tim@263: if (g instanceof Polygon) { tim@263: coords = ((Polygon) g).getCoordinates(); tim@383: }else if (g instanceof Point){ tim@383: coords = ((Point)g).getCoordinates(); tim@879: }else if (g instanceof LineString){ tim@879: coords = ((LineString)g).getCoordinates(); tim@879: }else{ tim@879: coords = g.getCoordinates(); tim@129: } tim@884: tim@263: if (coords != null){ tim@263: SDEPoint[] lSDEPoints = new SDEPoint[coords.length]; tim@263: for (int i = 0; i < coords.length; i++) { tim@263: lSDEPoints[i] = new SDEPoint(coords[i].x, coords[i].y); tim@263: } tim@263: return lSDEPoints; tim@263: }else{ tim@263: return null; tim@263: } tim@129: } tim@129: }