/**
* This file is protected by Copyright.
* Please refer to the COPYRIGHT file distributed with this source distribution.
*
* This file is part of REDHAWK IDE.
*
* All rights reserved. This program and the accompanying materials are made available under
* the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html.
*
*/
package gov.redhawk.sca.properties;
import java.util.List;
import mil.jpeojtrs.sca.prf.Properties;
import org.eclipse.emf.ecore.EObject;
/**
* A Category contains a list of Properties and a list of other Categories and is used to provide Properties.
*
* @since 5.0
*/
public interface Category {
/**
* Gets the name of the {@link Category}.
*
* @return the name of the category
*/
String getName();
/**
* Gets the list of categories belonging to this {@link Category}.
*
* @return a list of categories contained by this category
*/
List<Category> getCategories();
/**
* Gets the list of properties belonging to this {@link Category}.
*
* @return a list of properties contained by this category
*/
List<Properties> getProperties();
/**
* Determines if the object is in this category's property list.
*
* @param obj the object to check the property list for
* @return <code> true </code> if the object is contained in this category's properties; <code> false </code> otherwise
*/
boolean containsProperty(EObject obj);
}