Search in sources :

Example 6 with Record

use of org.collectionspace.chain.csp.schema.Record in project application by collectionspace.

the class RelateRead method configure.

public void configure(WebUI ui, Spec spec) {
    for (Record r : spec.getAllRecords()) {
        type_to_url.put(r.getID(), r.getWebURL());
        servicename_to_serviceid.put(r.getServicesTenantSg(), r.getID());
    }
}
Also used : Record(org.collectionspace.chain.csp.schema.Record)

Example 7 with Record

use of org.collectionspace.chain.csp.schema.Record in project application by collectionspace.

the class UISchema method uiotherschema.

/**
 * Create all the other weird schemas that the UI wants
 * @param storage
 * @param params
 * @return
 * @throws UIException
 * @throws UnauthorizedException
 */
private JSONObject uiotherschema(UISession session, Storage storage, String params) throws UIException, UnauthorizedException {
    JSONObject out = new JSONObject();
    String sectionname = "";
    String sectionid = params.toLowerCase();
    if (schema != null) {
        sectionid = schema.getID();
        sectionname = schema.getWebURL();
    }
    try {
        if (sectionid.toLowerCase().equals("recordlist")) {
            JSONObject schema = new JSONObject();
            JSONArray recrds = new JSONArray();
            for (Record rc : this.spec.getAllRecords()) {
                if (rc.isShowType("authority")) {
                    if (rc.isInRecordList()) {
                        for (Instance ins : rc.getAllInstances()) {
                            recrds.put(ins.getWebURL());
                        }
                    }
                } else if (rc.isShowType("record") || rc.isShowType("procedure")) {
                    if (rc.isInRecordList()) {
                        recrds.put(rc.getWebURL());
                    }
                }
            }
            schema.put("type", "array");
            schema.put("default", recrds);
            out.put(sectionname, schema);
        } else if (sectionid.toLowerCase().equals("namespaces")) {
            assertLoginStatus(session);
            JSONObject namespaces = new JSONObject();
            JSONObject namespacesProps = new JSONObject();
            for (Record rc : this.spec.getAllRecords()) {
                if (rc.isInRecordList()) {
                    if (rc.isShowType("authority")) {
                        JSONObject authInfoProps = new JSONObject();
                        int cardinal = 0;
                        for (Instance ins : rc.getAllInstances()) {
                            JSONObject instanceInfo = new JSONObject();
                            JSONObject instanceProps = new JSONObject();
                            JSONObject nptAllowed = new JSONObject();
                            nptAllowed.put("type", "boolean");
                            nptAllowed.put("default", ins.getNPTAllowed());
                            instanceProps.put("nptAllowed", nptAllowed);
                            // Preserve the order of the namespaces
                            JSONObject orderProp = new JSONObject();
                            orderProp.put("type", "integer");
                            orderProp.put("default", cardinal);
                            instanceProps.put("order", orderProp);
                            JSONObject workflowState = new JSONObject();
                            workflowState.put("type", "string");
                            workflowState.put("default", getWorkflowState(storage, ins));
                            instanceProps.put("workflowState", workflowState);
                            instanceInfo.put("type", "object");
                            instanceInfo.put("properties", instanceProps);
                            authInfoProps.put(ins.getWebURL(), instanceInfo);
                            cardinal++;
                        }
                        JSONObject authorityInfo = new JSONObject();
                        authorityInfo.put("type", "object");
                        authorityInfo.put("properties", authInfoProps);
                        namespacesProps.put(rc.getWebURL(), authorityInfo);
                    }
                }
            }
            namespaces.put("type", "object");
            namespaces.put("properties", namespacesProps);
            out.put("namespaces", namespaces);
        /**
         *{
         *    "namespaces": {
         *        "type": "object",
         *        "properties": {
         *            "person": {
         *                "type": "object"
         *                "properties": {
         *                    "person" : {
         *                        "type": "object"
         *                        "properties": {
         *                            "nptAllowed": {
         *                                "type": "boolean",
         *                                "default": true
         *                            }
         *                        }
         *                    },
         *                    "persontest" : {
         *                        "type": "object"
         *                        "properties": {
         *                            "nptAllowed": {
         *                                "type": "boolean",
         *                                "default": true
         *                            }
         *                        }
         *                    }
         *                }
         *            },
         *            "organization": {
         *                "type": "object"
         *                "properties": {
         *                    "organization" : {
         *                        "type": "object"
         *                        "properties": {
         *                            "nptAllowed": {
         *                                "type": "boolean",
         *                                "default": true
         *                            }
         *                        }
         *                    },
         *                    "organizationtest" : {
         *                        "type": "object"
         *                        "properties": {
         *                            "nptAllowed": {
         *                                "type": "boolean",
         *                                "default": true
         *                            }
         *                        }
         *                    }
         *                }
         *            },
         *            ...
         *        }
         *    }
         *}
         */
        } else if (sectionid.toLowerCase().equals("recordtypes")) {
            JSONObject procedures_schema = new JSONObject();
            JSONObject authorities_schema = new JSONObject();
            JSONObject admin_schema = new JSONObject();
            JSONObject cataloging_schema = new JSONObject();
            JSONObject searchAll_schema = new JSONObject();
            JSONArray procedures_records = new JSONArray();
            JSONArray authorities_records = new JSONArray();
            JSONArray admin_records = new JSONArray();
            JSONArray cataloging_records = new JSONArray();
            JSONArray searchAll_records = new JSONArray();
            /**
             * { "procedures": { "type": "array", "default": ["loanout",
             * "movement", ...] }, "vocabularies": { "type": "array",
             * "default": ["person", "organization", ...] }, "cataloging": {
             * "type": "array", "default": ["cataloging"] } }
             */
            for (Record rc : this.spec.getAllRecords()) {
                if (rc.isInRecordList()) {
                    if (rc.isShowType("procedure")) {
                        procedures_records.put(rc.getWebURL());
                    } else if (rc.isShowType("authority")) {
                        for (Instance ins : rc.getAllInstances()) {
                            authorities_records.put(ins.getWebURL());
                        }
                    } else if (rc.isShowType("record")) {
                        // FIXME Assumes that "records" are either
                        // procedures, authorities, or cataloging.
                        // Should instead have a type "cataloging"
                        cataloging_records.put(rc.getWebURL());
                    } else if (rc.isShowType("searchall")) {
                        searchAll_records.put(rc.getWebURL());
                    } else if (rc.isShowType("authorizationdata") || rc.isShowType("userdata")) {
                        admin_records.put(rc.getWebURL());
                    }
                }
            }
            procedures_schema.put("type", "array");
            procedures_schema.put("default", procedures_records);
            authorities_schema.put("type", "array");
            authorities_schema.put("default", authorities_records);
            admin_schema.put("type", "array");
            admin_schema.put("default", admin_records);
            cataloging_schema.put("type", "array");
            cataloging_schema.put("default", cataloging_records);
            searchAll_schema.put("type", "array");
            searchAll_schema.put("default", searchAll_records);
            JSONObject record_types = new JSONObject();
            JSONObject types_list = new JSONObject();
            types_list.put("procedures", procedures_schema);
            types_list.put("vocabularies", authorities_schema);
            types_list.put("cataloging", cataloging_schema);
            types_list.put("all", searchAll_schema);
            types_list.put("administration", admin_schema);
            record_types.put("type", "object");
            record_types.put("properties", types_list);
            out.put("recordtypes", record_types);
        }
    } catch (JSONException e) {
        throw new UIException("Cannot generate UISpec due to JSONException", e);
    }
    return out;
}
Also used : JSONObject(org.json.JSONObject) Instance(org.collectionspace.chain.csp.schema.Instance) JSONArray(org.json.JSONArray) JSONException(org.json.JSONException) UIException(org.collectionspace.csp.api.ui.UIException) Record(org.collectionspace.chain.csp.schema.Record)

Example 8 with Record

use of org.collectionspace.chain.csp.schema.Record in project application by collectionspace.

the class UISpec method actualHierarchyEntry.

/**
 * Create hierarchy specific output for uispec
 * @param out
 * @param f
 * @param context
 * @throws JSONException
 */
private void actualHierarchyEntry(JSONObject out, FieldSet f, UISpecRunContext context) throws JSONException {
    String condition = "cspace.hierarchy.assertEquivalentContexts";
    Record thisr = f.getRecord();
    JSONObject cond = new JSONObject();
    if (f instanceof Field) {
        FieldSet fs = (FieldSet) f.getParent();
        JSONObject args = new JSONObject();
        args.put(fs.getID(), displayAsveryplain(fs, context));
        cond.put("args", args);
        cond.put("funcName", condition);
    }
    JSONObject ttree = new JSONObject();
    actualMessageKey(ttree, thisr.getUILabelSelector(f.getID()), f.getLabel());
    // This looks wrong - a single decorator is being set as the value of the
    // plural decorators key, which usually holds an array of decorators.
    // However, it turns out that UI is forgiving, and handles either Object or Array
    JSONObject decorator = getDecorator("addClass", "hidden", null, null, f.isReadOnly());
    JSONObject decorators = new JSONObject();
    decorators.put(DECORATORS_KEY, decorator);
    JSONObject ftree = new JSONObject();
    ftree.put(thisr.getUILabelSelector(f.getID()), decorators);
    JSONObject cexpander = new JSONObject();
    cexpander.put("type", "fluid.renderer.condition");
    cexpander.put("condition", cond);
    cexpander.put("trueTree", ttree);
    cexpander.put("falseTree", ftree);
    actualTrueTreeSub(out, cexpander);
}
Also used : Field(org.collectionspace.chain.csp.schema.Field) FieldSet(org.collectionspace.chain.csp.schema.FieldSet) JSONObject(org.json.JSONObject) Record(org.collectionspace.chain.csp.schema.Record)

Example 9 with Record

use of org.collectionspace.chain.csp.schema.Record in project application by collectionspace.

the class WebReset method reset.

private void reset(Storage storage, UIRequest request, String path) throws UIException {
    // remember to log into the front end before trying to run this
    JSONObject data = new JSONObject();
    TTYOutputter tty = request.getTTYOutputter();
    // Temporary hack to reset db
    try {
        data = storage.getPathsJSON("/", null);
        String[] paths = (String[]) data.get("listItems");
        if (!path.equals("nodelete")) {
            // Delete existing records
            for (String dir : paths) {
                Record r = null;
                log.info(dir);
                if ("direct".equals(dir) || "relations".equals(dir))
                    continue;
                try {
                    r = this.spec.getRecord(dir);
                } catch (Exception e) {
                    continue;
                }
                if (r.isType("procedure")) {
                    if ("termlistitem".equals(dir) || "termlist".equals(dir))
                        continue;
                    // Nothing to do for the pseudo-records
                    if (r.isType("searchall")) {
                        continue;
                    }
                } else if (r.isType("authority")) {
                    continue;
                } else if (r.isType("record")) {
                    if (// Filter out self-renderers, etc
                    "hierarchy".equals(dir) || !r.isRealRecord())
                        continue;
                    log.info("S");
                } else if (r.isType("authorizationdata")) {
                    continue;
                } else if (r.isType("userdata")) {
                    continue;
                } else {
                    // ignore - have no idea what it is
                    continue;
                }
                // if("place".equals(dir) || "vocab".equals(dir) || "contact".equals(dir) || "location".equals(dir) || "person".equals(dir) || "organization".equals(dir) || "taxon".equals(dir)){
                // continue;
                // }
                // ignore authorization
                // if("rolePermission".equals(dir) || "accountrole".equals(dir) || "accountroles".equals(dir)  || "userperm".equals(dir)|| "permrole".equals(dir) || "permission".equals(dir) || "role".equals(dir)|| "userrole".equals(dir) || "users".equals(dir) ){
                // continue;
                // }
                // ignore other - tho we do need to clean these up
                // if("termlistitem".equals(dir) ||"termlist".equals(dir) || "reports".equals(dir) || "reporting".equals(dir) || "output".equals(dir)  )
                // continue;
                // // ignore other - tho we do need to clean these up
                // if("hierarchy".equals(dir) || "dimension".equals(dir) ||"structureddate".equals(dir)  ||"blobs".equals(dir) ||"relations".equals(dir) || "direct".equals(dir) || "id".equals(dir) )
                // continue;
                log.info("Deleteing data associated with : " + dir);
                tty.line("Deleteing data associated with : " + dir);
                JSONObject data2 = storage.getPathsJSON(dir, null);
                String[] paths2 = (String[]) data2.get("listItems");
                for (int i = 0; i < paths2.length; i++) {
                    tty.line("path : " + dir + "/" + paths2[i]);
                    try {
                        storage.deleteJSON(dir + "/" + paths2[i]);
                    } catch (UnimplementedException e) {
                        tty.line("UnimplementedException" + e);
                        tty.line("ux");
                    } catch (UnderlyingStorageException e) {
                        tty.line("UnderlyingStorageEception" + e);
                    }
                    tty.line("ok");
                    tty.flush();
                }
            }
        }
        log.info("Creating records and procedures: this might take some time, go get a cup of tea and be patient");
        tty.line("Creating records and procedures: this might take some time, go get a cup of tea and be patient");
        // Create records anew
        tty.line("Create records anew");
        String schedule = getResource("reset.txt");
        for (String line : schedule.split("\n")) {
            String[] parts = line.split(" +", 2);
            if (!parts[0].equals("")) {
                tty.line("Creating " + parts[0]);
                log.info("Creating " + parts[0]);
                storage.autocreateJSON(parts[0], getJSONResource(parts[1]), null);
                tty.flush();
            }
        }
        log.info("Delete existing vocab/auth entries");
        tty.line("Delete existing vocab/auth entries");
        // Delete existing vocab entries
        JSONObject myjs = new JSONObject();
        myjs.put("pageSize", "10");
        myjs.put("pageNum", "0");
        for (String dir : paths) {
            try {
                if (this.spec.hasRecord(dir)) {
                    if (dir.equalsIgnoreCase("vocab") && path.equalsIgnoreCase("keepVocabs")) {
                        // don't reset the term lists
                        continue;
                    }
                    Record r = this.spec.getRecord(dir);
                    if (r.isType("authority")) {
                        for (Instance n : r.getAllInstances()) {
                            String url = r.getID() + "/" + n.getTitleRef();
                            try {
                                storage.getPathsJSON(url, new JSONObject()).toString();
                            } catch (UnderlyingStorageException x) {
                                JSONObject fields = new JSONObject("{'displayName':'" + n.getTitle() + "','shortIdentifier':'" + n.getWebURL() + "'}");
                                String base = r.getID();
                                storage.autocreateJSON(base, fields, null);
                                log.info("Instance " + n.getID() + " Created");
                                tty.line("Instance " + n.getID() + " Created");
                            }
                            deletall(n, r, url, "Deleting " + url, storage, data, tty, myjs);
                        }
                    }
                }
            } catch (Exception e) {
                log.info("that was weird but probably not an issue " + e.getMessage());
            }
        }
        log.info("Creating Dummy data");
        tty.line("Creating Dummy data");
        tty.flush();
        // Create vocab entries
        String names = getResource("names.txt");
        int i = 0;
        for (String nextName : names.split("\n")) {
            i++;
            JSONObject entry = createTrivialAuthItem(PERSON_TERMLIST_ELEMENT, nextName);
            storage.autocreateJSON("/person/person", entry, null);
            tty.line("Created Person " + entry);
            log.info("Created Person " + entry);
            tty.flush();
            if (quick && i > 20)
                break;
        }
        // Create vocab entries
        String orgs = getResource("orgs.txt");
        i = 0;
        for (String nextName : orgs.split("\n")) {
            i++;
            JSONObject entry = createTrivialAuthItem(ORG_TERMLIST_ELEMENT, nextName);
            storage.autocreateJSON("/organization/organization", entry, null);
            tty.line("Created Organisation " + nextName);
            log.info("Created Organisation " + nextName);
            tty.flush();
            if (quick && i > 20)
                break;
        }
        tty.line("done");
        log.info("done");
    } catch (ExistException e) {
        log.info("ExistException " + e.getLocalizedMessage());
        tty.line("ExistException " + e.getLocalizedMessage());
        throw new UIException("Existence problem", e);
    } catch (UnimplementedException e) {
        log.info("UnimplementedException " + e.getLocalizedMessage());
        tty.line("UnimplementedException " + e.getLocalizedMessage());
        throw new UIException("Unimplemented ", e);
    } catch (UnderlyingStorageException x) {
        log.info("UnderlyingStorageException " + x.getLocalizedMessage());
        tty.line("UnderlyingStorageException " + x.getLocalizedMessage());
        throw new UIException("Problem storing" + x.getLocalizedMessage(), x.getStatus(), x.getUrl(), x);
    } catch (JSONException e) {
        log.info("JSONException " + e.getLocalizedMessage());
        tty.line("JSONException " + e.getLocalizedMessage());
        throw new UIException("Invalid JSON", e);
    } catch (IOException e) {
        log.info("IOException " + e.getLocalizedMessage());
        tty.line("IOException " + e.getLocalizedMessage());
        throw new UIException("IOException", e);
    }
}
Also used : Instance(org.collectionspace.chain.csp.schema.Instance) JSONException(org.json.JSONException) IOException(java.io.IOException) UnderlyingStorageException(org.collectionspace.csp.api.persistence.UnderlyingStorageException) ExistException(org.collectionspace.csp.api.persistence.ExistException) UnimplementedException(org.collectionspace.csp.api.persistence.UnimplementedException) JSONException(org.json.JSONException) UIException(org.collectionspace.csp.api.ui.UIException) ExistException(org.collectionspace.csp.api.persistence.ExistException) ConnectionException(org.collectionspace.chain.csp.persistence.services.connection.ConnectionException) IOException(java.io.IOException) UnderlyingStorageException(org.collectionspace.csp.api.persistence.UnderlyingStorageException) ConfigException(org.collectionspace.chain.csp.config.ConfigException) JSONObject(org.json.JSONObject) UIException(org.collectionspace.csp.api.ui.UIException) TTYOutputter(org.collectionspace.csp.api.ui.TTYOutputter) Record(org.collectionspace.chain.csp.schema.Record) UnimplementedException(org.collectionspace.csp.api.persistence.UnimplementedException)

Example 10 with Record

use of org.collectionspace.chain.csp.schema.Record in project application by collectionspace.

the class WebReset method initialiseAll.

/*
	 * Vocab and Auth initialization is now done when the Services layer starts up -see JIRA issue DRYD-177
	 */
@Deprecated
private boolean initialiseAll(Storage storage, UIRequest request, String path, boolean modifyResponse) throws UIException {
    StringBuffer responseMessage = new StringBuffer();
    boolean initializationFailed = false;
    boolean initializationUnknown = false;
    try {
        logInitMessage(responseMessage, "Initializing vocab/auth entries...", modifyResponse);
        JSONObject myjs = new JSONObject();
        myjs.put("pageSize", "10");
        myjs.put("pageNum", "0");
        JSONObject data = storage.getPathsJSON("/", null);
        String[] paths = (String[]) data.get("listItems");
        for (String dir : paths) {
            try {
                if (this.spec.hasRecord(dir)) {
                    Record record = this.spec.getRecord(dir);
                    if (record.isType("authority") == true) {
                        for (Instance instance : record.getAllInstances()) {
                            if (instance.getCreateUnreferenced() || isInstanceReferenced(instance)) {
                                avi = new AuthoritiesVocabulariesInitialize(instance, populate, modifyResponse);
                                Option[] allOpts = instance.getAllOptions();
                                boolean creatingTerm = false;
                                try {
                                    if (avi.createIfMissingAuthority(storage, responseMessage, record, instance) == -1) {
                                        log.warn(String.format("The currently authenticated user does not have sufficient permission to determine if the '%s' authority/term-list is properly initialized.", instance.getID()));
                                        // since the logged in user doesn't have the correct perms, we can't verify that the authorities and term lists have been properly initialized
                                        initializationUnknown = true;
                                    } else {
                                        // 
                                        // Create the missing items.
                                        // 
                                        creatingTerm = true;
                                        avi.fillVocab(storage, record, instance, responseMessage, allOpts, true);
                                    }
                                } catch (UnderlyingStorageException e) {
                                    if (e.getStatus() == HttpStatus.SC_CONFLICT) {
                                        // This means the authority/vocabulary instance already exists in the backend, so move on to the next instance.
                                        log.warn(String.format("A short ID for the authority/vocabulary instance '%s' already exists.", instance.getID()));
                                        // Not a fatal error.
                                        continue;
                                    } else {
                                        throw e;
                                    }
                                } catch (Exception e) {
                                    if (avi.success() == false) {
                                        initializationFailed = true;
                                    }
                                    throw e;
                                }
                            } else {
                                logInitMessage(responseMessage, "Instance " + instance.getID() + " is defined by not referenced.", modifyResponse);
                            }
                        }
                    }
                }
            } catch (UnderlyingStorageException e) {
                // 
                if (e.getCause() instanceof ConnectionException) {
                    if (initializationFailed == true) {
                        modifyResponse = true;
                        if (e.getStatus() == HttpStatus.SC_UNAUTHORIZED || e.getStatus() == HttpStatus.SC_FORBIDDEN) {
                            logInitMessage(responseMessage, "\nSummary:\n\t*** ERROR *** CollectionSpace has not been properly initialized: The CollectionSpace administrator needs to login to the correct tenant and initialize the default term lists and authorities.\n\n", modifyResponse);
                        } else {
                            logInitMessage(responseMessage, "\nSummary:\n\t*** ERROR *** CollectionSpace has not been properly initialized: Ask the CollectionSpace administrator to login to the correct tenant and initialize the default term lists and authorities.\n\n", modifyResponse);
                        }
                    } else if (initializationUnknown == true) {
                        log.warn("The currently logged in user does not have the correct permissions to determin whether or not the default authorities and term lists have been properly initialized.");
                    } else {
                        // Should never get here unless we've got a bug in our code
                        throw e;
                    }
                }
                logException(e, responseMessage, modifyResponse);
                // no need to continue if the user hasn't authenticated or has incorrect permissions
                break;
            }
        }
    } catch (ExistException e) {
        logInitMessage(responseMessage, "ExistException " + e.getLocalizedMessage(), modifyResponse);
        throw new UIException("Existence problem", e);
    } catch (UnimplementedException e) {
        logInitMessage(responseMessage, "UnimplementedException " + e.getLocalizedMessage(), modifyResponse);
        throw new UIException("Unimplemented ", e);
    } catch (UnderlyingStorageException x) {
        if (x.getStatus() == HttpStatus.SC_UNAUTHORIZED) {
            initializationFailed = true;
            logInitMessage(responseMessage, "\n*** ERROR *** You need to be logged in to the correct tenant with the proper credentials before attempting to initialize the default term lists and authorities.\n", modifyResponse);
            logException(x, responseMessage, modifyResponse);
        } else {
            logInitMessage(responseMessage, "UnderlyingStorageException " + x.getLocalizedMessage(), modifyResponse);
            throw new UIException("Problem storing:" + x.getLocalizedMessage(), x.getStatus(), x.getUrl(), x);
        }
    } catch (JSONException e) {
        logInitMessage(responseMessage, "JSONException " + e.getLocalizedMessage(), modifyResponse);
        throw new UIException("Invalid JSON", e);
    }
    // 
    if (modifyResponse == true && request != null) {
        TTYOutputter tty = request.getTTYOutputter();
        tty.line(responseMessage.toString());
    }
    // report success if we didn't see a failure
    return !initializationFailed;
}
Also used : Instance(org.collectionspace.chain.csp.schema.Instance) JSONException(org.json.JSONException) AuthoritiesVocabulariesInitialize(org.collectionspace.chain.csp.webui.authorities.AuthoritiesVocabulariesInitialize) UnderlyingStorageException(org.collectionspace.csp.api.persistence.UnderlyingStorageException) ExistException(org.collectionspace.csp.api.persistence.ExistException) UnimplementedException(org.collectionspace.csp.api.persistence.UnimplementedException) JSONException(org.json.JSONException) UIException(org.collectionspace.csp.api.ui.UIException) ExistException(org.collectionspace.csp.api.persistence.ExistException) ConnectionException(org.collectionspace.chain.csp.persistence.services.connection.ConnectionException) IOException(java.io.IOException) UnderlyingStorageException(org.collectionspace.csp.api.persistence.UnderlyingStorageException) ConfigException(org.collectionspace.chain.csp.config.ConfigException) JSONObject(org.json.JSONObject) UIException(org.collectionspace.csp.api.ui.UIException) Record(org.collectionspace.chain.csp.schema.Record) Option(org.collectionspace.chain.csp.schema.Option) TTYOutputter(org.collectionspace.csp.api.ui.TTYOutputter) UnimplementedException(org.collectionspace.csp.api.persistence.UnimplementedException) ConnectionException(org.collectionspace.chain.csp.persistence.services.connection.ConnectionException)

Aggregations

Record (org.collectionspace.chain.csp.schema.Record)59 JSONObject (org.json.JSONObject)33 FieldSet (org.collectionspace.chain.csp.schema.FieldSet)23 JSONArray (org.json.JSONArray)19 UnderlyingStorageException (org.collectionspace.csp.api.persistence.UnderlyingStorageException)14 JSONException (org.json.JSONException)14 Field (org.collectionspace.chain.csp.schema.Field)12 Group (org.collectionspace.chain.csp.schema.Group)12 Instance (org.collectionspace.chain.csp.schema.Instance)11 UnimplementedException (org.collectionspace.csp.api.persistence.UnimplementedException)11 ReturnedDocument (org.collectionspace.chain.csp.persistence.services.connection.ReturnedDocument)10 ReturnedMultipartDocument (org.collectionspace.chain.csp.persistence.services.connection.ReturnedMultipartDocument)10 Document (org.dom4j.Document)10 HashMap (java.util.HashMap)9 ConnectionException (org.collectionspace.chain.csp.persistence.services.connection.ConnectionException)9 ExistException (org.collectionspace.csp.api.persistence.ExistException)9 Element (org.dom4j.Element)9 UIException (org.collectionspace.csp.api.ui.UIException)8 IOException (java.io.IOException)7 Repeat (org.collectionspace.chain.csp.schema.Repeat)7