package de.swm.gwt.client.mobile.keystore; import java.util.ArrayList; import java.util.Collection; import java.util.List; /** * Konkrete Implementierung von {@link KeyCollection} als Liste * von Schlüsseln (geordnet, mehrere Vorkommen des gleichen Schlüssels * möglich). * * @author wimmel.guido <br> * copyright (C) 2011, SWM Services GmbH * */ public class KeyList extends KeyCollection { private static final long serialVersionUID = 1L; private List<String> keyList = new ArrayList<String>(); /** * Constructor zur deserialisierung. */ public KeyList() { } /** * Default constructor. * * @param forClass * die Klasse, fuer die die Keys gehalten werden sollen. * @param userId * der benutzer-id fuer den der Key generiert werden soll. * @param useCaseQualifier * der Kontext (use-case) in welchem das Objekt vernedet wird. Erlaubt die Speicherung gleicher objekte * unter verschiedenen Use-Cases. */ public KeyList(Class<?> forClass, String userId, String useCaseQualifier) { super(forClass, userId, useCaseQualifier); } /** * Returns the keys. * * @return the keys */ @Override public Collection<String> getKeys() { return getKeyList(); } /** * Returns the keys as a list. * * @return the keys */ public List<String> getKeyList() { return keyList; } /** * Sets the key list. * * @param keys * the keys to set */ public void setKeyList(List<String> keys) { this.keyList = keys; } /** * Fuegt einen Key zur Liste hinzu. * * @param key * der Key */ @Override public void addKey(String key) { keyList.add(key); } /** * Entfernt einen Key (falls vorhanden). * * @param key * der Key */ @Override public void removeKey(String key) { keyList.remove(key); } /** * Erzeugt einen neuen eindeutigen Key fuer den jeweiligen Benutzer und Klasse und fuegt ihn zu der Liste der Keys * an einer bestimmten Position hinzu. * * @param pos Position in der Liste * @param objectKey * der interne Key des DTO's * @return der erzeugte global eindeutige Key */ public String createKeyAt(int pos, String objectKey) { final String key = createKeyCollectionKey() + "_" + objectKey; keyList.add(pos, key); return key; } }