📄 datastore.html
字号:
acomplishing this. </p> <p> Helper classes for implementing a FeatureReader (in order): </p> <ul> <li> DefaultFeatureReader - basic support for creating a FeatureReader for an AttributeReader </li> <li> FilteringFeatureReader - filtering support </li> <li> DiffFeatureReader - In-Process Transaction Support (see TransactionStateDiff) </li> <li> ReTypeFeatureReader - Feature Type schema manipulation of namesspace and attribute type subsets </li> <li> EmptyFeatureReader - provides no content for Filter.ALL optimizations </li> </ul> <p> Sample use (not optimized): </p> <pre><code> if (filter == Filter.ALL) { return new EmptyFeatureReader(featureType); } String typeName = featureType.getTypeName(); FeatureType schema = getSchema( typeName ); FeatureReader reader = new DefaultFeatureReader( getAttributeReaders(), schema ); if (filter != Filter.NONE) { reader = new FilteringFeatureReader(reader, filter); } if (transaction != Transaction.AUTO_COMMIT) { Map diff = state(transaction).diff(typeName); reader = new DiffFeatureReader(reader, diff); } if (!featureType.equals(reader.getFeatureType())) { reader = new ReTypeFeatureReader(reader, featureType); } return reader </code></pre> <p> Locking support does not need to be provided for FeatureReaders. </p><P><DD><DL><DT><B>Parameters:</B><DD><CODE>query</CODE> - Requested form of the returned Features and the filter used to constraints the results<DD><CODE>transaction</CODE> - Transaction this query opperates against<DT><B>Returns:</B><DD>FeatureReader Allows Sequential Processing of featureType<DT><B>Throws:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></DL></DD></DL><HR><A NAME="getFeatureWriter(java.lang.String, org.geotools.filter.Filter, org.geotools.data.Transaction)"><!-- --></A><H3>getFeatureWriter</H3><PRE>public <A HREF="../../../org/geotools/data/FeatureWriter.html" title="interface in org.geotools.data">FeatureWriter</A> <B>getFeatureWriter</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> typeName, <A HREF="../../../org/geotools/filter/Filter.html" title="interface in org.geotools.filter">Filter</A> filter, <A HREF="../../../org/geotools/data/Transaction.html" title="interface in org.geotools.data">Transaction</A> transaction) throws <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE><DL><DD>Access FeatureWriter for modification of existing DataStore contents. <p> To limit FeatureWriter to the FeatureTypes defined by this DataStore, typeName is used to indicate FeatureType. The resulting feature writer will allow modifications against the same FeatureType provided by getSchema( typeName ) </p> <p> The FeatureWriter will provide access to the existing contents of the FeatureType referenced by typeName. The provided filter will be used to skip over Features as required. </p> <b>Notes For Implementing DataStore</b> </p> <p> The returned FeatureWriter <b>does not</b> support the addition of new Features to FeatureType (it would need to police your modifications to agree with <code>filer</code>). As such it will return <code>false</code> for getNext() when it reaches the end of the Query and NoSuchElementException when next() is called. </p> <p> Helper classes for implementing a FeatureWriter (in order): </p> <li> InProcessLockingManager.checkedWriter( writer ) - provides a check against locks before allowing modification <li> FilteringFeatureWriter - filtering support for FeatureWriter (does not allow new content) </li> <li> DiffFeatureWriter - In-Process Transaction Support (see TransactionStateDiff) </li> <li> EmptyFeatureWriter - provides no content for Filter.ALL optimizations </li> </ul><P><DD><DL><DT><B>Parameters:</B><DD><CODE>typeName</CODE> - Indicates featureType to be modified<DD><CODE>filter</CODE> - constraints used to limit the modification<DD><CODE>transaction</CODE> - Transaction this query opperates against<DT><B>Returns:</B><DD>FeatureWriter Allows Sequential Modification of featureType<DT><B>Throws:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></DL></DD></DL><HR><A NAME="getFeatureWriter(java.lang.String, org.geotools.data.Transaction)"><!-- --></A><H3>getFeatureWriter</H3><PRE>public <A HREF="../../../org/geotools/data/FeatureWriter.html" title="interface in org.geotools.data">FeatureWriter</A> <B>getFeatureWriter</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> typeName, <A HREF="../../../org/geotools/data/Transaction.html" title="interface in org.geotools.data">Transaction</A> transaction) throws <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE><DL><DD>Access FeatureWriter for modification of the DataStore typeName. <p> FeatureWriters will need to be limited to the FeatureTypes defined by the DataStore, the easiest way to express this limitation is to the FeatureType by a provided typeName. </p> <p> The returned FeatureWriter will return <code>false</code> for getNext() when it reaches the end of the Query. </p><P><DD><DL><DT><B>Parameters:</B><DD><CODE>typeName</CODE> - Indicates featureType to be modified<DD><CODE>transaction</CODE> - Transaction to opperates against<DT><B>Returns:</B><DD>FeatureReader Allows Sequential Processing of featureType<DT><B>Throws:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></DL></DD></DL><HR><A NAME="getFeatureWriterAppend(java.lang.String, org.geotools.data.Transaction)"><!-- --></A><H3>getFeatureWriterAppend</H3><PRE>public <A HREF="../../../org/geotools/data/FeatureWriter.html" title="interface in org.geotools.data">FeatureWriter</A> <B>getFeatureWriterAppend</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> typeName, <A HREF="../../../org/geotools/data/Transaction.html" title="interface in org.geotools.data">Transaction</A> transaction) throws <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE><DL><DD>Aquire a FeatureWriter for adding new content to a FeatureType. <p> This FeatureWriter will return <code>false</code> for hasNext(), however next() may be used to aquire new Features that may be writen out to add new content. </p><P><DD><DL><DT><B>Parameters:</B><DD><CODE>typeName</CODE> - Indicates featureType to be modified<DD><CODE>transaction</CODE> - Transaction to opperates against<DT><B>Returns:</B><DD>FeatureWriter that may only be used to append new content<DT><B>Throws:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></DL></DD></DL><HR><A NAME="getLockingManager()"><!-- --></A><H3>getLockingManager</H3><PRE>public <A HREF="../../../org/geotools/data/LockingManager.html" title="interface in org.geotools.data">LockingManager</A> <B>getLockingManager</B>()</PRE><DL><DD>Retrieve a per featureID based locking service from this DataStore. <p> It is common to return an instanceof InProcessLockingManager for DataStores that do not provide native locking. </p> <p> AbstractFeatureLocking makes use of this service to provide locking support. You are not limitied by this implementation and may simply return <code>null</code> for this value. </p><P><DD><DL><DT><B>Returns:</B><DD>DataStores may return <code>null</code>, if the handling locking in another fashion.</DL></DD></DL><!-- ========= END OF CLASS DATA ========= --><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/DataStore.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../org/geotools/data/AttributeWriter.html" title="interface in org.geotools.data"><B>PREV CLASS</B></A> <A HREF="../../../org/geotools/data/DataStoreFactorySpi.html" title="interface in org.geotools.data"><B>NEXT CLASS</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../index.html" target="_top"><B>FRAMES</B></A> <A HREF="DataStore.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR>Copyright © 1996-2007 <a href="http://www.geotools.org">Geotools</a>. All Rights Reserved.</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -