/******************************************************************************* * Copyright (c) 2010-2014 SAP AG and others. * 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 * * Contributors: * SAP AG - initial API and implementation *******************************************************************************/ package org.eclipse.skalli.model.ext.commons; import java.util.SortedSet; import java.util.TreeSet; import org.eclipse.skalli.model.ExtensionEntityBase; import org.eclipse.skalli.model.Member; import org.eclipse.skalli.model.PropertyName; public class PeopleExtension extends ExtensionEntityBase { public static final String MODEL_VERSION = "1.0"; //$NON-NLS-1$ public static final String NAMESPACE = "http://www.eclipse.org/skalli/2010/Model/Extension-People"; //$NON-NLS-1$ @PropertyName(position = 0) public static final String PROPERTY_LEADS = "leads"; //$NON-NLS-1$ @PropertyName(position = 1) public static final String PROPERTY_MEMBERS = "members"; //$NON-NLS-1$ private TreeSet<Member> leads = new TreeSet<Member>(); private TreeSet<Member> members = new TreeSet<Member>(); public synchronized SortedSet<Member> getMembers() { if (members == null) { members = new TreeSet<Member>(); } return members; } public void addMember(Member member) { if (member != null) { getMembers().add(member); } } public void removeMember(Member member) { if (member != null) { getMembers().remove(member); } } public boolean hasMember(Member member) { return getMembers().contains(member); } public synchronized SortedSet<Member> getLeads() { if (leads == null) { leads = new TreeSet<Member>(); } return leads; } public void addLead(Member lead) { if (lead != null) { getLeads().add(lead); } } public void removeLead(Member lead) { if (lead != null) { getLeads().remove(lead); } } public boolean hasLead(Member lead) { return getLeads().contains(lead); } }