001: package org.geotools.data.store;
002:
003: import java.io.IOException;
004: import java.util.Collection;
005: import java.util.Iterator;
006:
007: import org.geotools.data.FeatureReader;
008: import org.geotools.feature.CollectionListener;
009: import org.geotools.feature.FeatureCollection;
010: import org.geotools.feature.FeatureIterator;
011: import org.geotools.feature.FeatureList;
012: import org.geotools.feature.FeatureType;
013: import org.geotools.feature.IllegalAttributeException;
014: import org.geotools.feature.visitor.FeatureVisitor;
015: import org.geotools.geometry.jts.ReferencedEnvelope;
016: import org.geotools.util.ProgressListener;
017: import org.opengis.filter.Filter;
018: import org.opengis.filter.sort.SortBy;
019:
020: import com.vividsolutions.jts.geom.Envelope;
021: import com.vividsolutions.jts.geom.Geometry;
022:
023: public class EmptyFeatureCollection extends DataFeatureCollection {
024:
025: /**
026: * null bounds
027: */
028: static ReferencedEnvelope bounds = new ReferencedEnvelope(
029: new Envelope(), null);
030: static {
031: bounds.setToNull();
032: }
033:
034: /**
035: * the schema
036: */
037: FeatureType schema;
038:
039: public EmptyFeatureCollection(FeatureType schema) {
040: this .schema = schema;
041: }
042:
043: public FeatureType getSchema() {
044: return schema;
045: }
046:
047: public ReferencedEnvelope getBounds() {
048: return bounds;
049: }
050:
051: public int getCount() throws IOException {
052: return 0;
053: }
054:
055: protected Iterator openIterator() {
056: return new EmptyIterator();
057: }
058:
059: protected void closeIterator(Iterator close) {
060: //do nothing
061: }
062:
063: //read only access
064: public boolean add(Object object) {
065: return false;
066: }
067:
068: public boolean addAll(Collection collection) {
069: return false;
070: }
071:
072: public boolean remove(Object object) {
073: return false;
074: }
075:
076: public boolean removeAll(Collection collection) {
077: return false;
078: }
079:
080: //
081: // public FeatureIterator features() {
082: // return new IteratorFeatureIterator( iterator() );
083: // }
084: //
085: // public void close(FeatureIterator close) {
086: // close.close();
087: // }
088: //
089: // public Iterator iterator() {
090: // return new EmptyIterator();
091: // }
092: //
093: // public void close(Iterator close) {
094: // }
095: //
096: // public void addListener(CollectionListener listener)
097: // throws NullPointerException {
098: // // TODO Auto-generated method stub
099: //
100: // }
101: //
102: // public void removeListener(CollectionListener listener)
103: // throws NullPointerException {
104: // // TODO Auto-generated method stub
105: //
106: // }
107: //
108: // public FeatureType getFeatureType() {
109: // // TODO Auto-generated method stub
110: // return null;
111: // }
112: //
113: // public FeatureType getSchema() {
114: // // TODO Auto-generated method stub
115: // return null;
116: // }
117: //
118: // public void accepts(FeatureVisitor visitor, ProgressListener progress)
119: // throws IOException {
120: // // TODO Auto-generated method stub
121: //
122: // }
123: //
124: // public FeatureCollection subCollection(Filter filter) {
125: // // TODO Auto-generated method stub
126: // return null;
127: // }
128: //
129: // public FeatureList sort(SortBy order) {
130: // // TODO Auto-generated method stub
131: // return null;
132: // }
133: //
134: //
135: //
136: // public void purge() {
137: // // TODO Auto-generated method stub
138: //
139: // }
140: //
141: // public int size() {
142: // // TODO Auto-generated method stub
143: // return 0;
144: // }
145: //
146: // public void clear() {
147: // // TODO Auto-generated method stub
148: //
149: // }
150: //
151: // public boolean isEmpty() {
152: // // TODO Auto-generated method stub
153: // return false;
154: // }
155: //
156: // public Object[] toArray() {
157: // // TODO Auto-generated method stub
158: // return null;
159: // }
160: //
161: // public boolean add(Object o) {
162: // // TODO Auto-generated method stub
163: // return false;
164: // }
165: //
166: // public boolean contains(Object o) {
167: // // TODO Auto-generated method stub
168: // return false;
169: // }
170: //
171: // public boolean remove(Object o) {
172: // // TODO Auto-generated method stub
173: // return false;
174: // }
175: //
176: // public boolean addAll(Collection c) {
177: // // TODO Auto-generated method stub
178: // return false;
179: // }
180: //
181: // public boolean containsAll(Collection c) {
182: // // TODO Auto-generated method stub
183: // return false;
184: // }
185: //
186: // public boolean removeAll(Collection c) {
187: // // TODO Auto-generated method stub
188: // return false;
189: // }
190: //
191: // public boolean retainAll(Collection c) {
192: // // TODO Auto-generated method stub
193: // return false;
194: // }
195: //
196: // public Object[] toArray(Object[] a) {
197: // // TODO Auto-generated method stub
198: // return null;
199: // }
200: //
201: // public FeatureReader reader() throws IOException {
202: // // TODO Auto-generated method stub
203: // return null;
204: // }
205: //
206: // public String getID() {
207: // // TODO Auto-generated method stub
208: // return null;
209: // }
210: //
211: // public Object[] getAttributes(Object[] attributes) {
212: // // TODO Auto-generated method stub
213: // return null;
214: // }
215: //
216: // public Object getAttribute(String xPath) {
217: // // TODO Auto-generated method stub
218: // return null;
219: // }
220: //
221: // public Object getAttribute(int index) {
222: // // TODO Auto-generated method stub
223: // return null;
224: // }
225: //
226: // public void setAttribute(int position, Object val)
227: // throws IllegalAttributeException, ArrayIndexOutOfBoundsException {
228: // // TODO Auto-generated method stub
229: //
230: // }
231: //
232: // public int getNumberOfAttributes() {
233: // // TODO Auto-generated method stub
234: // return 0;
235: // }
236: //
237: // public void setAttribute(String xPath, Object attribute)
238: // throws IllegalAttributeException {
239: // // TODO Auto-generated method stub
240: //
241: // }
242: //
243: // public Geometry getDefaultGeometry() {
244: // // TODO Auto-generated method stub
245: // return null;
246: // }
247: //
248: // public void setDefaultGeometry(Geometry geometry)
249: // throws IllegalAttributeException {
250: // // TODO Auto-generated method stub
251: //
252: // }
253: //
254: // public Envelope getBounds() {
255: // Envelope bounds = new Envelope();
256: // bounds.setToNull();
257: //
258: // return bounds;
259: // }
260:
261: }
|