@Override public void apply(Map<String, Object> fieldProperties) { super.apply(fieldProperties); Object listType = fieldProperties.get(SchemaChangeModel.LIST_TYPE_KEY); if (listType != null && listType instanceof String) { setListType((String) listType); } Object allowedSchemas = fieldProperties.get(SchemaChangeModel.ALLOW_KEY); if (allowedSchemas != null && allowedSchemas instanceof String[]) { setAllowedSchemas((String[]) allowedSchemas); } }
public static ListFieldSchema createListFieldSchema(String name) { ListFieldSchema field = new ListFieldSchemaImpl(); field.setName(name); return field; }
@Override public Map<String, Object> getAllChangeProperties() { Map<String, Object> map = super.getAllChangeProperties(); // type property: map.put("listType", getListType()); // allow property: map.put("allow", getAllowedSchemas()); // min // max return map; }
@Override public void validate() { super.validate(); if (StringUtils.isEmpty(getListType())) { throw error(BAD_REQUEST, "schema_error_list_type_missing", getName()); } //TODO the list type should be a enum. List<String> validTypes = Arrays.asList("html", "boolean", "string", "micronode", "node", "number", "date", "binary"); if (!validTypes.contains(getListType())) { throw error(BAD_REQUEST, "schema_error_list_type_invalid", getListType(), getName()); } } }
schema.addField(htmlFieldSchema); ListFieldSchema listFieldSchema = new ListFieldSchemaImpl(); listFieldSchema.setAllowedSchemas(new String[] { "content", "video" }); schema.addField(micronodeFieldSchema); ListFieldSchemaImpl micronodeListFieldSchema = new ListFieldSchemaImpl(); micronodeListFieldSchema.setName("locationlist"); micronodeListFieldSchema.setLabel("List of Locations"); micronodeListFieldSchema.setListType("micronode"); micronodeListFieldSchema.setAllowedSchemas(new String[] { "geolocation" }); schema.addField(micronodeListFieldSchema); schema.validate();
public static SchemaModel mockContentSchema() { SchemaModel schema = new SchemaModelImpl(); schema.setName("content"); schema.setDescription("Content schema"); schema.setDisplayField("string"); // basic types schema.addField(new StringFieldSchemaImpl().setName("string").setRequired(true)); schema.addField(new NumberFieldSchemaImpl().setName("number").setRequired(true)); schema.addField(new BooleanFieldSchemaImpl().setName("boolean").setRequired(true)); schema.addField(new DateFieldSchemaImpl().setName("date").setRequired(true)); schema.addField(new HtmlFieldSchemaImpl().setName("html").setRequired(true)); schema.addField(new NodeFieldSchemaImpl().setName("node").setRequired(true)); schema.addField(new MicronodeFieldSchemaImpl().setName("micronode").setRequired(true)); // lists types schema.addField(new ListFieldSchemaImpl().setListType("string").setName("stringList").setRequired(true)); schema.addField(new ListFieldSchemaImpl().setListType("number").setName("numberList").setRequired(true)); schema.addField(new ListFieldSchemaImpl().setListType("boolean").setName("booleanList").setRequired(true)); schema.addField(new ListFieldSchemaImpl().setListType("date").setName("dateList").setRequired(true)); schema.addField(new ListFieldSchemaImpl().setListType("html").setName("htmlList").setRequired(true)); schema.addField(new ListFieldSchemaImpl().setListType("node").setName("nodeList").setRequired(true)); schema.addField(new ListFieldSchemaImpl().setListType("micronode").setName("micronodeList").setRequired(true)); return schema; }
if (fieldSchema instanceof ListFieldSchemaImpl) { ListFieldSchemaImpl listFieldSchema = (ListFieldSchemaImpl) fieldSchema; switch (listFieldSchema.getListType()) { case "node": NodeGraphFieldList graphNodeList = container.getNodeList(fieldSchema.getName()); log.error("Unknown list type {" + listFieldSchema.getListType() + "}"); break;
private void addListFieldMapping(JsonObject fieldInfo, Branch branch, ListFieldSchemaImpl fieldSchema, JsonObject customIndexOptions) { ListFieldSchemaImpl listFieldSchema = (ListFieldSchemaImpl) fieldSchema; String type = listFieldSchema.getListType(); switch (type) { case "node": String[] allowed = listFieldSchema.getAllowedSchemas(); log.error("Unknown list type {" + listFieldSchema.getListType() + "}"); throw new RuntimeException("Mapping type for field type {" + type + "} unknown.");
public static ListFieldSchema createListFieldSchema(String name, String listType) { ListFieldSchema field = new ListFieldSchemaImpl(); field.setName(name); field.setListType(listType); return field; }