Package edu.indiana.dlib.metsnav.data

Examples of edu.indiana.dlib.metsnav.data.CompositeItem


        return aim;
    }
 
  @SuppressWarnings("unchekced")
  public JSONObject getExternalJSONCompositeItem(MetsObject obj, String cid) {
    CompositeItem item = obj.getCompositeItemMap().get(cid);
    JSONObject json = new JSONObject();
    json.put("text", item.getLabel());
    json.put("id", item.getId());
    JSONArray children = new JSONArray();
    int index = 0;
    for (AbstractItem child : item.getChildren()) {
      JSONObject ljo = null;
      if (child instanceof AtomicItem) {
        ljo = new JSONObject();
        ljo.put("leaf", true);
        ljo.put("mets", child.getDataStream(null));
View Full Code Here


     * @param size
     * @return
     */
    @SuppressWarnings("unchecked")
    public JSONObject getJSONCompositeItem(MetsObject obj, String cid) {
        CompositeItem item = obj.getCompositeItemMap().get(cid);
       
        DescriptiveMetadata dmd = obj.getDmdMap().get(item.getDmdID());

        JSONObject citem = null;
       
        // Gets the descriptive metadata to be shown
        if (dmd == null) {
            if (StringUtils.isBlank(item.getLabel())) {
                return null;
            } else {
                citem = new JSONObject();
                citem.put("id", item.getId());
                citem.put("title", item.getLabel());
            }
        } else {
            DescriptiveMetadataHandler handler = new XSLTDescriptiveMetadataHandler(); //TODO: generalize, dynamic loading
            citem =  (JSONObject)JSONSerializer.toJSON(handler.getMetadata(dmd.getDmd(), "simple"));
            citem.put("hasDmd", true);
        }
        citem.put("firstPage", item.getFirst().getSequentialOrder());
        citem.put("lastPage", item.getLast().getSequentialOrder());
        citem.put("label", item.getLabel());
        if (!StringUtils.isBlank(item.getContentId())) {
          citem.put("contentId", item.getContentId());
        }
       
        JSONObject dataStream = new JSONObject();
        Map<String, Map<String, String>> map = item.getDataStreamsMap();
        for (Map.Entry<String, Map<String, String>> stream: map.entrySet()) {
            JSONObject streamJson = new JSONObject();
            String streamKey = stream.getKey();
            Map<String, String> streamMap = stream.getValue();
            for (Map.Entry<String, String> entry : streamMap.entrySet()) {
                streamJson.put(entry.getKey(), entry.getValue());
            }
            if (streamJson.entrySet().size() > 0) {
                dataStream.put(streamKey, streamJson);
            }
           
        }
        if (dataStream.entrySet().size() > 0) {
            citem.put("dataStream", dataStream);
        }

        // Now add its childrens
        JSONArray childrenJSON = new JSONArray();
        List<AbstractItem> children = item.getChildren();
        for (AbstractItem abstractItem : children) {
            if (abstractItem instanceof CompositeItem) {
                CompositeItem child = (CompositeItem) abstractItem;
                JSONObject childJson = getJSONCompositeItem(obj, child.getId());
                if (childJson != null) {
                    childrenJSON.add(childJson);
                }
            }
        }
View Full Code Here

        //TODO: If a citem doesn't have "title", then remove it
        return citem;
    }
   
    public JSONObject getJSONInStruct(MetsObject obj, boolean external) {
        CompositeItem root = obj.getLogicalStruct();
        if (root == null) {
          return null;
        }     
      if (external) {
          JSONObject rootNode =  getExternalJSONCompositeItem(obj, root.getId());
          rootNode.put("root", "true");
          return rootNode;       
      } else {
          JSONObject rootNode =  getJSONCompositeItem(obj, root.getId());
          rootNode.put("root", "true");
          return rootNode;
      }
    }   
View Full Code Here

                return null;
            }
        } else {
            String type = div.getTYPE();
            String label = div.getLABEL();
            CompositeItem division = new CompositeItem();
            division.setType(type);
            division.setLabel(label);
            if (div.getCONTENTIDSCount() > 0) {
              division.setContentId(div.getCONTENTIDS(0));
            }
            if (StringUtils.isBlank(div.getID())) {
                division.setId(generateUniqueID());
            } else {
                division.setId(div.getID());
            }
            metsObj.getCompositeItemMap().put(division.getId(), division);
            if (div.getDMDIDCount() == 1) {
                DmdSec dmd = (DmdSec) div.getDMDID(0);
                division.setDmdID(dmd.getID());
            }

            Div[] divs = div.getDiv();
            division.setChildren(new ArrayList<AbstractItem>(divs.length));
            for (int i = 0; i < divs.length; i++) {
                Div d = divs[i];
                Object obj = parseLogicalStruct(oid, d, division);
                if (obj instanceof AtomicItem) {
                    // Add page to division's child list
                    division.addChild((AtomicItem) obj);
                    if (i == 0) {
                        division.setFirst((AtomicItem) obj);
                    }
                    if (i == divs.length - 1) {
                        division.setLast((AtomicItem) obj);
                    }
                } else if (obj instanceof CompositeItem) {
                    division.addChild((CompositeItem) obj);
                    if (i == 0) {
                        division.setFirst(((CompositeItem) obj).getFirst());
                    }
                    if (i == divs.length - 1) {
                        division.setLast(((CompositeItem) obj).getLast());
                    }
                }
            }

            Fptr[] fptrs = div.getFptr();
            ParameterMap dataStream = config.getDataStream();
            if (dataStream != null) {
                Map<String, Map<String, String>> valueMap = dataStream.getValueMap();
                for (Map.Entry<String, Map<String, String>> entry : valueMap.entrySet()) {
                    Map<String, String> stream = new HashMap<String, String>();
                    for (Fptr fptr2: fptrs) {
                        File file = (File)fptr2.getFILEID();
                        String use = file.getUSE();
                        if (entry.getValue().get(use) != null) {
                            stream.put(use, file.getFLocat(0).getHref());
                        }
                    }
                    division.getDataStreamsMap().put(entry.getKey(), stream);
                }
            }
           
            division.setParent(parent);
            return division;
        }
    }
View Full Code Here

                return null;
            }
        } else {
            String type = div.getTYPE();
            String label = div.getLABEL();
            CompositeItem division = new CompositeItem();
            division.setType(type);
            division.setLabel(label);
            if (div.getCONTENTIDSCount() > 0) {
              division.setContentId(div.getCONTENTIDS(0));
            }
            if (StringUtils.isBlank(div.getID())) {
                division.setId(generateUniqueID());
            } else {
                division.setId(div.getID());
            }
            metsObj.getCompositeItemMap().put(division.getId(), division);
            if (div.getDMDIDCount() == 1) {
                DmdSec dmd = (DmdSec) div.getDMDID(0);
                division.setDmdID(dmd.getID());
            }

            Div[] divs = div.getDiv();
            division.setChildren(new ArrayList<AbstractItem>(divs.length));
            for (int i = 0; i < divs.length; i++) {
                Div d = divs[i];
                Object obj = parseLogicalStruct(oid, d, division);
                if (obj instanceof AtomicItem) {
                    // Add page to division's child list
                    division.addChild((AtomicItem) obj);
                    if (i == 0) {
                        division.setFirst((AtomicItem) obj);
                    }
                    if (i == divs.length - 1) {
                        division.setLast((AtomicItem) obj);
                    }
                } else if (obj instanceof CompositeItem) {
                    division.addChild((CompositeItem) obj);
                    if (i == 0) {
                        division.setFirst(((CompositeItem) obj).getFirst());
                    }
                    if (i == divs.length - 1) {
                        division.setLast(((CompositeItem) obj).getLast());
                    }
                }
            }

            Fptr[] fptrs = div.getFptr();
            if (fptrs.length > 0) {
                ParameterMap dataStream = config.getDataStream();
                if (dataStream != null) {
                    Map<String, Map<String, String>> valueMap = dataStream.getValueMap();
                    for (Map.Entry<String, Map<String, String>> entry : valueMap.entrySet()) {
                        Map<String, String> stream = new HashMap<String, String>();
                        for (Fptr fptr2: fptrs) {
                            File file = (File)fptr2.getFILEID();
                            String use = file.getUSE();
                            if (entry.getValue().get(use) != null) {
                                stream.put(use, file.getFLocat(0).getHref());
                            }
                        }
                        division.getDataStreamsMap().put(entry.getKey(), stream);
                    }
                }
            }
           
            division.setParent(parent);
            return division;
        }
    }
View Full Code Here

                return null;
            }
        } else {
            String type = div.getTYPE();
            String label = div.getLABEL();
            CompositeItem division = new CompositeItem();
            division.setType(type);
            division.setLabel(label);
            if (div.getCONTENTIDSCount() > 0) {
              division.setContentId(div.getCONTENTIDS(0));
            }
            if (StringUtils.isBlank(div.getID())) {
                division.setId(generateUniqueID());
            } else {
                division.setId(div.getID());
            }
            metsObj.getCompositeItemMap().put(division.getId(), division);
            if (div.getDMDIDCount() == 1) {
                DmdSec dmd = (DmdSec) div.getDMDID(0);
                division.setDmdID(dmd.getID());
            }

            Div[] divs = div.getDiv();
            division.setChildren(new ArrayList<AbstractItem>(divs.length));
            for (int i = 0; i < divs.length; i++) {
                Div d = divs[i];
                Object obj = parseLogicalStruct(oid, d, division);
                if (obj instanceof AtomicItem) {
                    // Add page to division's child list
                    division.addChild((AtomicItem) obj);
                    if (i == 0) {
                        division.setFirst((AtomicItem) obj);
                    }
                    if (i == divs.length - 1) {
                        division.setLast((AtomicItem) obj);
                    }
                } else if (obj instanceof CompositeItem) {
                    division.addChild((CompositeItem) obj);
                    if (i == 0) {
                        division.setFirst(((CompositeItem) obj).getFirst());
                    }
                    if (i == divs.length - 1) {
                        division.setLast(((CompositeItem) obj).getLast());
                    }
                }
            }

            Fptr[] fptrs = div.getFptr();
            ParameterMap dataStream = config.getDataStream();
            if (dataStream != null) {
                Map<String, Map<String, String>> valueMap = dataStream.getValueMap();
                for (Map.Entry<String, Map<String, String>> entry : valueMap.entrySet()) {
                    Map<String, String> stream = new HashMap<String, String>();
                    for (Fptr fptr2: fptrs) {
                        File file = (File)fptr2.getFILEID();
                        String use = file.getUSE();
                        if (entry.getValue().get(use) != null) {
                            stream.put(use, file.getFLocat(0).getHref());
                        }
                    }
                    division.getDataStreamsMap().put(entry.getKey(), stream);
                }
            }
           
            division.setParent(parent);
            return division;
        }
    }
View Full Code Here

    assertEquals("imh-mets", mo.getId());
    assertEquals(98, mo.getPhysicalStruct().size());
    assertNull(mo.getPrintableUrl());
    assertEquals(8, mo.getDmdMap().keySet().size());
   
    CompositeItem root = mo.getLogicalStruct();
    ArrayList<AbstractItem> children = root.getChildren();
    ArrayList toc = new ArrayList();
    for (AbstractItem item : children) {
      CompositeItem ci = (CompositeItem)item;
      DescriptiveMetadataHandler handler = new XSLTDescriptiveMetadataHandler();
      DescriptiveMetadata dmd =mo.getDmdMap().get(ci.getDmdID());
      Map md = null;
      if (dmd == null) {
        md = new HashMap();
        md.put("id", ci.getId());
        md.put("title", ci.getLabel());
      } else {
        md =  handler.getMetadata(dmd.getDmd(), "simple");
      }
      md.put("firstPage", ci.getFirst().getId());
      md.put("lastPage", ci.getLast().getId());     
      toc.add(md);
    }
    CompositeItem first = (CompositeItem)children.get(6);
    Map ret = getArticle(mo, first.getId(), "screen");
   
    System.out.println(ToStringBuilder.reflectionToString(toc));
    System.out.println(ToStringBuilder.reflectionToString(ret));   
  }
View Full Code Here

   * @param size
   * @return
   */
  @SuppressWarnings("unchecked")
  public Map<String, Map> getArticle(MetsObject obj, String id, String size) {
    CompositeItem item = obj.getCompositeItemMap().get(id);
    DescriptiveMetadata dmd = obj.getDmdMap().get(item.getDmdID());
    Map md = null;
    if (dmd == null) {
      md = new HashMap();
      md.put("id", item.getId());
      md.put("title", item.getLabel());
    } else {
      DescriptiveMetadataHandler handler = new XSLTDescriptiveMetadataHandler();
      md = handler.getMetadata(dmd.getDmd(), "simple");
    }
    md.put("firstPage", item.getFirst().getId());
    md.put("lastPage", item.getLast().getId());
   
    Map ret = new HashMap();
    ret.put("article", md);
   
    AtomicItem ai = item.getFirst();
    Map aim = new HashMap();
    aim.put("pageNumber", ai.getSequentialOrder());
    aim.put("pageLabel", ai.getLabel());
    ParameterMap params = new ParameterMap();
    params.put("size", size);
View Full Code Here

TOP

Related Classes of edu.indiana.dlib.metsnav.data.CompositeItem

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.