Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * This program is free software; you can redistribute it and/or modify it under the
   * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
   * Foundation.
   *
   * You should have received a copy of the GNU Lesser General Public License along with this
   * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
   * or from the Free Software Foundation, Inc.,
   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
  * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  * See the GNU Lesser General Public License for more details.
  *
  * Copyright (c) 2009 Pentaho Corporation..  All rights reserved.
  */
 package org.pentaho.metadata.model.concept;
 
 import java.util.List;
 import java.util.Map;
 
This is the base implementation of a concept, and may be used in generic terms when defining parent concepts or modeling metadata. More concrete implementations extend the Concept class within Pentaho Metadata, found in the org.pentaho.metadata.model package.

Author(s):
Will Gorman (wgorman@pentaho.com)
 
 public class Concept implements IConceptSerializableCloneableComparable {
   
   public Concept() {
     super();
   }
 
   private static final long serialVersionUID = -6912836203678095834L;
 
   public static String NAME_PROPERTY = "name"//$NON-NLS-1$
   public static String DESCRIPTION_PROPERTY = "description"//$NON-NLS-1$
   public static String SECURITY_PROPERTY = "security"//$NON-NLS-1$
   
   Map<StringObjectproperties = new HashMap<StringObject>();
   String id;
   List<IConceptchildren = null;
   
   public IConcept getParent() {
     return ;
   }
   
   public List<StringgetUniqueId() {
     List<Stringuid = new ArrayList<String>();
     if (getParent() != null && getParent().getUniqueId() != null) {
       uid.addAll(getParent().getUniqueId());
     }
     uid.add(getId());
     return uid;
   }
   
   public IConcept getChildByUniqueId(List<Stringuid) {
     return getChildByUniqueId(uid, 0);
   }
 
   protected IConcept getChildByUniqueId(List<Stringuidint index) {
     List<IConceptchildren = getChildren();
     for (IConcept concept : children) {
       List<Stringcuid = concept.getUniqueId();
       if (cuid.get(cuid.size() - 1).equals(uid.get(index))) {
         if (index == uid.size() - 1) {
           return concept;
         } else {
           return ((Concept)concept).getChildByUniqueId(uidindex + 1);
         }
       }
     }
     return null;
   }
 
   
   public Map<StringObjectgetChildProperties() {
     return ;
   }
   
   public void setChildProperties(Map<StringObjectproperties) {
     this. = properties;
   }
 
   public Object getChildProperty(String name) {
     return .get(name);
   }
 
   public String getId() {
     return ;
  }
  public void setId(String id) {
    this. = id;
  }
  
    return null;
  }
  
  public IConcept getParentConcept() {
    return ;
  }
  
  public void setParentConcept(IConcept parentConcept) {
    this. = parentConcept;
  }
  
    return null;
  }
  
  public Map<StringObjectgetProperties() {
    Map<String,Objectall = new HashMap<String,Object>();
    // Properties inherited from the "logical relationship": 
    // BusinessColumn inherits from Physical Column, B.Table from Ph.Table
    if (getInheritedConcept() != null) {
    }
    // Properties inherited from the pre-defined concepts like 
    // "Base", "ID", "Name", "Description", etc.
    //
    if ( != null) {
    }
    // The security settings from the security parent: 
    // Business table inherits from Business model, business column from business table
    if (getSecurityParentConcept() != null) {
      // Only take over the security information, nothing else
      Object securityProperty = (ObjectgetSecurityParentConcept().getProperty();
      if (securityProperty!=null) {
        all.put(securityProperty);
      }
    }
    // The child properties overwrite everything else.
    all.putAll();
    return all;
  }
  public Object getProperty(String name) {
    return getProperties().get(name);
  }
  public void setProperty(String nameObject property) {
    .put(nameproperty);
  }
  public void removeChildProperty(String name) {
    .remove(name);
  }
  
  public LocalizedString getName() {
  }
  public String getName(String locale) {
    LocalizedString locName = getName();
    if (locName == null) {
      return getId();
    }
    String name = locName.getLocalizedString(locale);
    if (name == null || name.trim().length() == 0) {
      return getId();
    }
    return name;
  }
  
  public void setName(LocalizedString name) {
    setProperty(name);
  }
  
  public String getDescription(String locale) {
    LocalizedString locDesc = getDescription();
    if (locDesc == null) {
      return getId();
    }
    String name = locDesc.getLocalizedString(locale);
    if (name == null || name.trim().length() == 0) {
      return getId();
    }
    return name;
  }
  
  }
  
  public void setDescription(LocalizedString description) {
    setProperty(description);
  }
  public int compareTo(Object o) {
    Concept c = (Concept)o;
    return getId().compareTo(c.getId());
  }
  
  public Object clone() {
    return clone(new Concept());
  }
  
  protected Object clone(Concept clone) {
    clone.setId(getId());
    
    // shallow references
    return clone;
  }
  public List<IConceptgetChildren() {
    return ;
  }
  
  public void addChild(IConcept child) {
    if ( == null) {
       = new ArrayList<IConcept>();
    }
    .add(child);
  }
New to GrepCode? Check out our FAQ X