/* * 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.text.SimpleDateFormat; 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.FieldOption; import org.krakenapps.api.MapTypeHint; import org.krakenapps.confdb.CollectionName; @CollectionName("organization-unit") public class OrganizationUnit { @FieldOption(nullable = false) private String guid = UUID.randomUUID().toString(); @FieldOption(length = 60, nullable = false) private String name; private String parent; @MapTypeHint({ String.class, Object.class }) private Map<String, Object> ext = new HashMap<String, Object>(); @FieldOption(skip = true) private List<OrganizationUnit> children = new ArrayList<OrganizationUnit>(); @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 String getName() { return name; } public void setName(String name) { this.name = name; } public String getParent() { return parent; } public void setParent(String parent) { this.parent = parent; } public Map<String, Object> getExt() { return ext; } public void setExt(Map<String, Object> ext) { this.ext = ext; } public List<OrganizationUnit> getChildren() { return children; } public void setChildren(List<OrganizationUnit> children) { this.children = children; } 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() { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return "guid=" + guid + ", name=" + name + ", updated=" + dateFormat.format(updated); } }