// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you 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 com.cloud.domain; import java.util.Date; import java.util.UUID; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import org.apache.log4j.Logger; import com.cloud.utils.db.GenericDao; @Entity @Table(name = "domain") public class DomainVO implements Domain { public static final Logger s_logger = Logger.getLogger(DomainVO.class.getName()); @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private long id; @Column(name = "parent") private Long parent = null; @Column(name = "name") private String name = null; @Column(name = "owner") private long accountId; @Column(name = "path") private String path = null; @Column(name = "level") private int level; @Column(name = GenericDao.REMOVED_COLUMN) private Date removed; @Column(name = "child_count") private int childCount = 0; @Column(name = "next_child_seq") private long nextChildSeq = 1L; @Column(name = "state") private Domain.State state; @Column(name = "network_domain") private String networkDomain; @Column(name = "uuid") private String uuid; public DomainVO() { } public DomainVO(String name, long owner, Long parentId, String networkDomain) { this.parent = parentId; this.name = name; this.accountId = owner; this.path = ""; this.level = 0; this.state = Domain.State.Active; this.networkDomain = networkDomain; this.uuid = UUID.randomUUID().toString(); } public DomainVO(String name, long owner, Long parentId, String networkDomain, String uuid) { this.parent = parentId; this.name = name; this.accountId = owner; this.path = ""; this.level = 0; this.state = Domain.State.Active; this.networkDomain = networkDomain; this.uuid = uuid; } @Override public long getId() { return id; } @Override public Long getParent() { return parent; } @Override public void setParent(Long parent) { if (parent == null) { this.parent = Domain.ROOT_DOMAIN; } else { if (parent.longValue() <= Domain.ROOT_DOMAIN) this.parent = Domain.ROOT_DOMAIN; else this.parent = parent; } } @Override public String getName() { return name; } @Override public void setName(String name) { this.name = name; } @Override public long getAccountId() { return accountId; } @Override public Date getRemoved() { return removed; } @Override public String getPath() { return path; } @Override public void setPath(String path) { this.path = path; } @Override public int getLevel() { return level; } public void setLevel(int level) { this.level = level; } @Override public int getChildCount() { return childCount; } public void setChildCount(int count) { childCount = count; } @Override public long getNextChildSeq() { return nextChildSeq; } public void setNextChildSeq(long seq) { nextChildSeq = seq; } @Override public Domain.State getState() { return state; } @Override public void setState(Domain.State state) { this.state = state; } @Override public String toString() { return new StringBuilder("Domain:").append(id).append(path).toString(); } @Override public String getNetworkDomain() { return networkDomain; } public void setNetworkDomain(String domainSuffix) { this.networkDomain = domainSuffix; } @Override public String getUuid() { return this.uuid; } public void setUuid(String uuid) { this.uuid = uuid; } }