Package com.ibm.sbt.playground.assets

Source Code of com.ibm.sbt.playground.assets.RootNode

/*
* © Copyright IBM Corp. 2012
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.ibm.sbt.playground.assets;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.ibm.commons.util.StringUtil;
import com.ibm.sbt.playground.dojo.JsonTreeRenderer;
import com.ibm.sbt.playground.vfs.VFSFile;


/**
* Definition of a root node.
*/
public class RootNode extends CategoryNode {

  public RootNode() {
    super(null,"");
  }

  public Asset loadAsset(VFSFile root, String unid) throws IOException {
    AssetNode n = findAsset(this, unid);
    if(n!=null) {
      return n.load(root);
    }
    return null;
  }
 
  private AssetNode findAsset(Node parent, String unid) {
    if(parent instanceof AssetNode) {
      AssetNode sn = (AssetNode)parent;
      if(StringUtil.equals(sn.getUnid(), unid)) {
        return sn;
      }
    } else if(parent instanceof CategoryNode) {
      CategoryNode cn = (CategoryNode)parent;
      List<Node> children = cn.getChildren();
      for(int i=0; i<children.size(); i++) {
        AssetNode s = findAsset(children.get(i), unid);
        if(s!=null) {
          return s;
        }
      }
    }
    return null;
  }

  public List<Node> getAllChildrenFlat() {
    ArrayList<Node> nodes = new ArrayList<Node>();
    List<Node> children = getChildren();
    for(int i=0; i<children.size(); i++) {
      addNode(nodes,children.get(i));
    }
    return nodes;
  }
  private void addNode(List<Node> nodes, Node node) {
    nodes.add(node);
    if(node instanceof CategoryNode) {
      CategoryNode cn = (CategoryNode)node;
      List<Node> children = cn.getChildren();
      for(int i=0; i<children.size(); i++) {
        addNode(nodes,children.get(i));
      }
    }
  }
 
  public String getAsJson() {
    try {
      JsonTreeRenderer r = new JsonTreeRenderer();
      return r.generateAsStringHier(this, true);
    } catch (IOException e) {
      return "{}";
    }
  }
}
TOP

Related Classes of com.ibm.sbt.playground.assets.RootNode

TOP
Copyright © 2018 www.massapi.com. 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.