blob: 75f79db069c02ecf537796b9cafb627bfc390832 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.cocoon.forms.samples.dreamteam;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* Manager
*/
public class Manager {
private static Manager manager = new Manager();
private List allPersons = null;
private Team dreamTeam = null;
private Manager() {
super();
}
public static Manager getManager() {
if (manager == null) {
manager = new Manager();
}
return manager;
}
public Hashtable getAllPersonsByPosition() {
Hashtable list = new Hashtable();
Team team = null;
TeamMember teamMember = null;
String position = null;
for (int i = 0; i < allPersons.size(); i++) {
teamMember = (TeamMember)allPersons.get(i);
position = teamMember.getPosition();
if (list.containsKey(position)) {
team = (Team)list.get(position);
}
else {
team = new Team();
list.put(position, team);
}
team.addMember(teamMember);
}
return list;
}
public TeamMember getPerson(String memberID) {
TeamMember member = null;
if (allPersons == null) {
return null;
}
for (Iterator iter = allPersons.iterator(); iter.hasNext();) {
member = (TeamMember) iter.next();
if (member.getMemberId().equals(memberID)) {
return member;
}
}
return null;
}
public void buildDreamTeam(Team dreamlist) {
if (dreamTeam != null) {
dreamTeam.getTeam().clear();
}
dreamTeam = new Team();
TeamMember listMember = null;
TeamMember dreamMember = null;
for (Iterator iter = dreamlist.getTeam().iterator(); iter.hasNext();) {
listMember = (TeamMember) iter.next();
dreamMember = getPerson(listMember.getMemberId());
dreamTeam.addMember(dreamMember);
}
}
public Team getDreamTeam() {
if (dreamTeam == null) {
dreamTeam = new Team();
dreamTeam.setTeam(allPersons);
}
return dreamTeam;
}
public void readPlayers(Document doc) {
NodeList players = doc.getElementsByTagName("player");
Node player = null;
int size = players.getLength();
for (int i = 0; i < size; i++) {
player = players.item(i);
addPlayer((Element)player);
}
}
private void addPlayer(Element player) {
// convert the XML node to a TeamMember
if (allPersons == null) {
allPersons = new ArrayList();
}
TeamMember member = null;
member = new TeamMember();
member.setMemberId("" + (allPersons.size() + 1));
member.setName(getElementValue(player, "name"));
member.setPosition(getElementValue(player, "position"));
member.setCountry(getElementValue(player, "country"));
// System.out.println(member.toString());
allPersons.add(member);
}
private String getElementValue(Element element, String tag) {
String result = null;
NodeList nodes = element.getElementsByTagName(tag);
result = nodes.item(0).getFirstChild().getNodeValue();
// System.out.println("element: " + tag + "=" + result);
return result;
}
}