/*
* Copyright 2011 Future Systems, Inc.
*
* Licensed 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.krakenapps.dom.model;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.krakenapps.api.CollectionTypeHint;
import org.krakenapps.api.DateFormat;
import org.krakenapps.api.FieldOption;
import org.krakenapps.api.ReferenceKey;
import org.krakenapps.confdb.CollectionName;
@CollectionName("host")
public class Host {
@FieldOption(nullable = false)
private String guid = UUID.randomUUID().toString();
@FieldOption(nullable = false)
@ReferenceKey("guid")
private HostType type;
@ReferenceKey("guid")
private Area area;
@FieldOption(nullable = false, length = 60)
private String name;
private String description;
/**
* os specific data
*/
private Map<String, Object> data = new HashMap<String, Object>();
/**
* device type string key to device list
*/
private Map<String, Object> devices = new HashMap<String, Object>();
@CollectionTypeHint(HostExtension.class)
private List<HostExtension> extensions = new ArrayList<HostExtension>();
@FieldOption(nullable = false)
private Date created = new Date();
@FieldOption(nullable = false)
private Date updated = new Date();
public String getGuid() {
return guid;
}
public void setGuid(String guid) {
this.guid = guid;
}
public HostType getType() {
return type;
}
public void setType(HostType type) {
this.type = type;
}
public Area getArea() {
return area;
}
public void setArea(Area area) {
this.area = area;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Map<String, Object> getData() {
return data;
}
public void setData(Map<String, Object> data) {
this.data = data;
}
public Map<String, Object> getDevices() {
return devices;
}
public void setDevices(Map<String, Object> devices) {
this.devices = devices;
}
public List<HostExtension> getExtensions() {
return extensions;
}
public void setExtensions(List<HostExtension> extensions) {
this.extensions = extensions;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
public Date getUpdated() {
return updated;
}
public void setUpdated(Date updated) {
this.updated = updated;
}
@Override
public String toString() {
return "guid=" + guid + ", type=" + type + ", area=" + area + ", name=" + name + ", created="
+ DateFormat.format("yyyy-MM-dd HH:mm:ss", created) + ", updated="
+ DateFormat.format("yyyy-MM-dd HH:mm:ss", created);
}
}