001 /* 002 * Sonar, open source software quality management tool. 003 * Copyright (C) 2008-2012 SonarSource 004 * mailto:contact AT sonarsource DOT com 005 * 006 * Sonar is free software; you can redistribute it and/or 007 * modify it under the terms of the GNU Lesser General Public 008 * License as published by the Free Software Foundation; either 009 * version 3 of the License, or (at your option) any later version. 010 * 011 * Sonar is distributed in the hope that it will be useful, 012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 014 * Lesser General Public License for more details. 015 * 016 * You should have received a copy of the GNU Lesser General Public 017 * License along with Sonar; if not, write to the Free Software 018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 019 */ 020 package org.sonar.api.design; 021 022 import org.apache.commons.lang.builder.EqualsBuilder; 023 import org.apache.commons.lang.builder.HashCodeBuilder; 024 import org.apache.commons.lang.builder.ReflectionToStringBuilder; 025 import org.apache.commons.lang.builder.ToStringStyle; 026 027 import javax.persistence.*; 028 029 @Entity 030 @Table(name = "dependencies") 031 public class DependencyDto { 032 033 @Id 034 @Column(name = "id") 035 @GeneratedValue 036 private Long id; 037 038 @Column(name = "from_snapshot_id", updatable = true, nullable = false) 039 private Integer fromSnapshotId; 040 041 @Column(name = "from_resource_id", updatable = true, nullable = false) 042 private Integer fromResourceId; 043 044 @Column(name = "from_scope", updatable = true, nullable = true) 045 private String fromScope; 046 047 @Column(name = "to_snapshot_id", updatable = true, nullable = false) 048 private Integer toSnapshotId; 049 050 @Column(name = "to_resource_id", updatable = true, nullable = false) 051 private Integer toResourceId; 052 053 @Column(name = "to_scope", updatable = true, nullable = true) 054 private String toScope; 055 056 @Column(name = "dep_weight", updatable = true, nullable = true) 057 private Integer weight; 058 059 @Column(name = "dep_usage", updatable = true, nullable = true, length = 30) 060 private String usage; 061 062 @Column(name = "project_snapshot_id", updatable = true, nullable = false) 063 private Integer projectSnapshotId; 064 065 @Column(name = "parent_dependency_id", updatable = true, nullable = true) 066 private Long parentDependencyId; 067 068 public Long getId() { 069 return id; 070 } 071 072 public void setId(Long id) { 073 this.id = id; 074 } 075 076 public Integer getFromSnapshotId() { 077 return fromSnapshotId; 078 } 079 080 public DependencyDto setFromSnapshotId(Integer fromSnapshotId) { 081 this.fromSnapshotId = fromSnapshotId; 082 return this; 083 } 084 085 public Integer getFromResourceId() { 086 return fromResourceId; 087 } 088 089 public DependencyDto setFromResourceId(Integer fromResourceId) { 090 this.fromResourceId = fromResourceId; 091 return this; 092 } 093 094 public Integer getToSnapshotId() { 095 return toSnapshotId; 096 } 097 098 public DependencyDto setToSnapshotId(Integer toSnapshotId) { 099 this.toSnapshotId = toSnapshotId; 100 return this; 101 } 102 103 public Integer getToResourceId() { 104 return toResourceId; 105 } 106 107 public DependencyDto setToResourceId(Integer toResourceId) { 108 this.toResourceId = toResourceId; 109 return this; 110 } 111 112 public Integer getWeight() { 113 return weight; 114 } 115 116 public DependencyDto setWeight(Integer weight) { 117 if (weight < 0) { 118 throw new IllegalArgumentException("Dependency weight can not be negative"); 119 } 120 this.weight = weight; 121 return this; 122 } 123 124 public String getFromScope() { 125 return fromScope; 126 } 127 128 public DependencyDto setFromScope(String fromScope) { 129 this.fromScope = fromScope; 130 return this; 131 } 132 133 public String getToScope() { 134 return toScope; 135 } 136 137 public DependencyDto setToScope(String toScope) { 138 this.toScope = toScope; 139 return this; 140 } 141 142 public String getUsage() { 143 return usage; 144 } 145 146 public DependencyDto setUsage(String usage) { 147 this.usage = usage; 148 return this; 149 } 150 151 public Integer getProjectSnapshotId() { 152 return projectSnapshotId; 153 } 154 155 public DependencyDto setProjectSnapshotId(Integer projectSnapshotId) { 156 this.projectSnapshotId = projectSnapshotId; 157 return this; 158 } 159 160 public Long getParentDependencyId() { 161 return parentDependencyId; 162 } 163 164 public DependencyDto setParentDependencyId(Long parentDependencyId) { 165 this.parentDependencyId = parentDependencyId; 166 return this; 167 } 168 169 @Override 170 public boolean equals(Object obj) { 171 if (!(obj instanceof DependencyDto)) { 172 return false; 173 } 174 if (this == obj) { 175 return true; 176 } 177 DependencyDto other = (DependencyDto) obj; 178 return new EqualsBuilder() 179 .append(fromSnapshotId, other.fromSnapshotId) 180 .append(toSnapshotId, other.toSnapshotId) 181 .isEquals(); 182 } 183 184 @Override 185 public int hashCode() { 186 return new HashCodeBuilder(17, 37) 187 .append(fromSnapshotId) 188 .append(toSnapshotId) 189 .toHashCode(); 190 } 191 192 @Override 193 public String toString() { 194 return new ReflectionToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).toString(); 195 } 196 }