001 /*
002 * Sonar, open source software quality management tool.
003 * Copyright (C) 2008-2011 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.jpa.entity;
021
022 import javax.persistence.Column;
023 import javax.persistence.Entity;
024 import javax.persistence.GeneratedValue;
025 import javax.persistence.Id;
026 import javax.persistence.Table;
027
028 /**
029 * @since 2.11
030 */
031 @Entity
032 @Table(name = "duplications_index")
033 public class DuplicationBlock {
034
035 public static final int BLOCK_HASH_SIZE = 50;
036
037 @Id
038 @Column(name = "id")
039 @GeneratedValue
040 private Integer id;
041
042 @Column(name = "snapshot_id", updatable = false, nullable = false)
043 private Integer snapshotId;
044
045 @Column(name = "project_snapshot_id", updatable = false, nullable = false)
046 private Integer projectSnapshotId;
047
048 @Column(name = "hash", updatable = false, nullable = false, length = BLOCK_HASH_SIZE)
049 private String hash;
050
051 @Column(name = "index_in_file", updatable = false, nullable = false)
052 private Integer indexInFile;
053
054 @Column(name = "start_line", updatable = false, nullable = false)
055 private Integer startLine;
056
057 @Column(name = "end_line", updatable = false, nullable = false)
058 private Integer endLine;
059
060 public DuplicationBlock() {
061 }
062
063 public DuplicationBlock(Integer projectSnapshotId, Integer snapshotId, String hash, Integer indexInFile, Integer startLine, Integer endLine) {
064 this.projectSnapshotId = projectSnapshotId;
065 this.snapshotId = snapshotId;
066 this.hash = hash;
067 this.indexInFile = indexInFile;
068 this.startLine = startLine;
069 this.endLine = endLine;
070 }
071
072 public Integer getId() {
073 return id;
074 }
075
076 public Integer getSnapshotId() {
077 return snapshotId;
078 }
079
080 public Integer getProjectSnapshotId() {
081 return projectSnapshotId;
082 }
083
084 public String getHash() {
085 return hash;
086 }
087
088 public Integer getIndexInFile() {
089 return indexInFile;
090 }
091
092 public Integer getStartLine() {
093 return startLine;
094 }
095
096 public Integer getEndLine() {
097 return endLine;
098 }
099
100 }