/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2004-2008, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.data.vpf.util;
import java.util.HashMap;
import org.geotools.data.vpf.io.TableRow;
import org.opengis.feature.simple.SimpleFeatureType;
/*
* PrimitiveDataFactory.java
*
* Created on July 8, 2004, 12:10 PM
*
* @author <a href="mailto:knuterik@onemap.org">Knut-Erik Johnsen</a>, Project OneMap
* @source $URL$
*/
public class PrimitiveDataFactory {
protected EdgeData readEdge(TableRow edge) {
EdgeData ed = null;
try {
ed = new EdgeData();
ed.put("id", new Integer(edge.get("id").intValue()));
ed.put("start_node", new Integer(edge.get("start_node").intValue()));
ed.put("end_node", new Integer(edge.get("end_node").intValue()));
ed.put("right_face", edge.get("right_face"));
ed.put("left_face", edge.get("left_face"));
ed.put("right_edge", edge.get("right_edge"));
ed.put("left_edge", edge.get("left_edge"));
ed.put("coordinates", edge.get("coordinates"));
} catch (Exception e) {
e.printStackTrace();
}
return ed;
}
protected HashMap readFeature(TableRow line, SimpleFeatureType type) {
HashMap tmp = new HashMap();
String name = null;
for (int i = 0; i < type.getAttributeCount(); i++) {
name = type.getDescriptor(i).getLocalName();
tmp.put(name, line.get(name));
}
return tmp;
}
protected HashMap readFace(TableRow face) {
HashMap fd = new HashMap();
fd.put("id", face.get("id").toString());
fd.put("ext_id", new Integer(face.get(1).intValue()));
fd.put("ring_ptr", new Integer(face.get("ring_ptr").intValue()));
return fd;
}
protected PointData readPoint(TableRow point) {
PointData pd = new PointData();
pd.put("id", point.get("id").toString());
pd.put("coordinate", point.get("coordinate").toString());
return pd;
}
protected HashMap readRing(TableRow ring) {
HashMap rd = new HashMap();
rd.put("id", ring.get("id").toString());
rd.put("face_id", new Integer(ring.get("face_id").intValue()));
rd.put("start_edge", new Integer(ring.get("start_edge").intValue()));
return rd;
}
}