/*******************************************************************************
* Copyright (c) 2006-2011 Gluster, Inc. <http://www.gluster.com>
* This file is part of Gluster Management Console.
*
* Gluster Management Console is free software; you can redistribute
* it and/or modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* Gluster Management Console 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see
* <http://www.gnu.org/licenses/>.
*******************************************************************************/
package org.gluster.storage.management.core.model;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import org.eclipse.core.runtime.PlatformObject;
import org.gluster.storage.management.core.utils.StringUtil;
@XmlRootElement
public class Entity extends PlatformObject implements Filterable {
protected String name;
protected List<Entity> children = new ArrayList<Entity>();
private Entity parent;
public Entity() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlTransient
public Entity getParent() {
return parent;
}
public void setParent(Entity parent) {
this.parent = parent;
}
public List<? extends Entity> getChildren() {
return children;
}
public void setChildren(List<Entity> children) {
this.children = children;
}
public Entity(String name, Entity parent) {
this.name = name;
this.parent = parent;
}
public Entity(String name, Entity parent, List<Entity> children) {
this.name = name;
this.parent = parent;
this.children = children;
}
@Override
public boolean filter(String filterString, boolean caseSensitive) {
return StringUtil.filterString(getName(), filterString, caseSensitive);
}
@Override
public String toString() {
return name;
}
}