/*
* Copyright (c) 2012 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.model.property;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Map;
import java.util.TreeMap;
@XmlRootElement(name = "properties_metadata")
public class PropertiesMetadata {
// Singleton instance provides access to global metadata
private static volatile PropertiesMetadata INSTANCE;
private Map<String, PropertyMetadata> metadata;
public static PropertiesMetadata getInstance() {
if (INSTANCE == null) {
INSTANCE = new PropertiesMetadata();
}
return INSTANCE;
}
public static Map<String, PropertyMetadata> getGlobalMetadata() {
return getInstance().getMetadata();
}
public void setMetadata(Map<String, PropertyMetadata> newMetadata) {
System.out.println("Setting: " + newMetadata);
this.metadata = new TreeMap<String, PropertyMetadata>(newMetadata);
INSTANCE = this;
}
@XmlElementWrapper(name = "metadata")
public Map<String, PropertyMetadata> getMetadata() {
if (metadata == null) {
metadata = new TreeMap<String, PropertyMetadata>();
}
return metadata;
}
}