class WFSDataStore extends ContentDataStore {

    @Override
    protected List<Name> createTypeNames() throws IOException {
        String namespaceURI = getNamespaceURI();

        Set<QName> remoteTypeNames = client.getRemoteTypeNames();
        List<Name> names = new ArrayList<Name>(remoteTypeNames.size());
        for (QName remoteTypeName : remoteTypeNames) {
            String localTypeName = remoteTypeName.getLocalPart();
            if (!XMLConstants.DEFAULT_NS_PREFIX.equals(remoteTypeName.getPrefix())) {
                localTypeName = remoteTypeName.getPrefix() + "_" + localTypeName;
            }
            Name typeName = new NameImpl(namespaceURI==null? remoteTypeName.getNamespaceURI() : namespaceURI, localTypeName);
            
            names.add(typeName);
            this.names.put(typeName, remoteTypeName);
        }

        for(Entry<String, String> e : configuredStoredQueries.entrySet()) {
            String name = e.getKey();
            String storedQueryId = e.getValue();
            Name typeName = new NameImpl(namespaceURI, name);
            names.add(typeName);
            this.names.put(typeName, getStoredQueryReturnType(storedQueryId));
        }

        return names;
    }

    public  WFSDataStore(final WFSClient client);

}