001 /* 002 * SonarQube, open source software quality management tool. 003 * Copyright (C) 2008-2014 SonarSource 004 * mailto:contact AT sonarsource DOT com 005 * 006 * SonarQube 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 * SonarQube 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 License 017 * along with this program; if not, write to the Free Software Foundation, 018 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 019 */ 020 021 package org.sonar.api.server.debt.internal; 022 023 import org.apache.commons.lang.builder.ToStringBuilder; 024 import org.apache.commons.lang.builder.ToStringStyle; 025 import org.sonar.api.server.debt.DebtCharacteristic; 026 027 import javax.annotation.CheckForNull; 028 import javax.annotation.Nullable; 029 030 import java.util.Date; 031 032 /** 033 * @since 4.3 034 */ 035 public class DefaultDebtCharacteristic implements DebtCharacteristic { 036 037 private Integer id; 038 private String key; 039 private String name; 040 private Integer order; 041 private Integer parentId; 042 private Date createdAt; 043 private Date updatedAt; 044 045 public Integer id() { 046 return id; 047 } 048 049 public DefaultDebtCharacteristic setId(Integer id) { 050 this.id = id; 051 return this; 052 } 053 054 @Override 055 public String key() { 056 return key; 057 } 058 059 public DefaultDebtCharacteristic setKey(String key) { 060 this.key = key; 061 return this; 062 } 063 064 @Override 065 public String name() { 066 return name; 067 } 068 069 public DefaultDebtCharacteristic setName(String name) { 070 this.name = name; 071 return this; 072 } 073 074 @Override 075 @CheckForNull 076 public Integer order() { 077 return order; 078 } 079 080 public DefaultDebtCharacteristic setOrder(@Nullable Integer order) { 081 this.order = order; 082 return this; 083 } 084 085 @CheckForNull 086 public Integer parentId() { 087 return parentId; 088 } 089 090 public DefaultDebtCharacteristic setParentId(@Nullable Integer parentId) { 091 this.parentId = parentId; 092 return this; 093 } 094 095 public Date createdAt() { 096 return createdAt; 097 } 098 099 public DefaultDebtCharacteristic setCreatedAt(Date createdAt) { 100 this.createdAt = createdAt; 101 return this; 102 } 103 104 @CheckForNull 105 public Date updatedAt() { 106 return updatedAt; 107 } 108 109 public DefaultDebtCharacteristic setUpdatedAt(@Nullable Date updatedAt) { 110 this.updatedAt = updatedAt; 111 return this; 112 } 113 114 @Override 115 public boolean isSub(){ 116 return parentId != null; 117 } 118 119 @Override 120 public String toString() { 121 return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); 122 } 123 124 }