de.swm.gwt.client.mobile.keystore.KeyCollection Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of swm-gwt-client Show documentation
Show all versions of swm-gwt-client Show documentation
Plain GWT Swm erweiterungen, auch zur benutzung in mobilen Geraeten
package de.swm.gwt.client.mobile.keystore;
import java.io.Serializable;
import java.util.Collection;
/**
* Abstrakte Klasse zur Verwaltung eindeutiger Schlüssel für
* Objekte. Kann insbesondere als Index bei der Ablage der
* Objekte im LocalStorage dienen.
*
* Implementierungen stehen zur Verfügung für Mengen von
* Schlüsseln ({@link KeySet}) und für Listen von Schlüsseln
* ({@link KeyList}).
*
*
* @author wiese.daniel, wimmel.guido
* copyright (C) 2011, SWM Services GmbH
*
*/
public abstract class KeyCollection implements Serializable {
private static final long serialVersionUID = 1L;
private String clazzName;
private String useCaseQualifier;
private String userId;
/**
* Constructor zur deserialisierung.
*/
public KeyCollection() {
}
/**
* 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 KeyCollection(Class> forClass, String userId, String useCaseQualifier) {
this.userId = userId;
this.useCaseQualifier = useCaseQualifier;
this.clazzName = forClass.getName();
}
/**
* Returns the keys.
*
* @return the keys
*/
public abstract Collection getKeys();
/**
* Returns the clazzName.
*
* @return the clazzName
*/
public String getClazzName() {
return clazzName;
}
/**
* clazzName the clazzName to set.
*
* @param clazzName
* the clazzName to set
*/
public void setClazzName(String clazzName) {
this.clazzName = clazzName;
}
/**
* Returns the useCaseQualifier.
*
* @return the useCaseQualifier
*/
public String getUseCaseQualifier() {
return useCaseQualifier;
}
/**
* useCaseQualifier the useCaseQualifier to set.
*
* @param useCaseQualifier
* the useCaseQualifier to set
*/
public void setUseCaseQualifier(String useCaseQualifier) {
this.useCaseQualifier = useCaseQualifier;
}
/**
* Returns the userId.
*
* @return the userId
*/
public String getUserId() {
return userId;
}
/**
* userId the userId to set.
*
* @param userId
* the userId to set
*/
public void setUserId(String userId) {
this.userId = userId;
}
/**
* Fuegt einen Key zur Struktur hinzu, ansonsten wird dieser ignoriert.
*
* @param key
* der Key
*/
public abstract void addKey(String key);
/**
* Löscht einen Key aus der Struktur, falls vorhanden.
*
* @param key
* der Key
*/
public abstract void removeKey(String key);
/**
* Erzeugt einen neuen eindeutigen Key fuer den jeweiligen benutzer und klasse und fuegt es zu der Menge der Keys
* hinzu.
*
* @param objectKey
* der interne Key des DTO's
* @return der erzeugte global eindeutige Key
*/
public String createKey(String objectKey) {
final String key = createKeyCollectionKey() + "_" + objectKey;
addKey(key);
return key;
}
/**
* Erzeugt einen neuen eindeutigen Key fuer das objektwelches aus dem Storage entfernt werden soll.
*
* @param objectKey
* der interne Key des DTO's
* @return der erzeugte global eindeutige Key
*/
public String createKeyForRemoval(String objectKey) {
final String key = createKeyCollectionKey() + "_" + objectKey;
removeKey(key);
return key;
}
/**
* Erzeugt einen neuen eindeutigen Key fuer ohne das Storage selbst zu manimulieren.
*
* @param objectKey
* der interne Key des DTO's
* @return der erzeugte global eindeutige Key
*/
public String createKeyNoOp(String objectKey) {
final String key = createKeyCollectionKey() + "_" + objectKey;
return key;
}
/**
* Erzeugt einen neuen eindeutigen Key fuer den jeweiligen benutzer und diesen Keyset.
*
* @return der erzeugte global eindeutige Key des keysets
*/
public String createKeyCollectionKey() {
final String key = this.userId + "_" + clazzName + "_" + useCaseQualifier;
return key;
}
}