+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2016 SonarSource SA
- * mailto:contact AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.db.version;
-
-import javax.annotation.CheckForNull;
-import org.sonar.db.dialect.Dialect;
-import org.sonar.db.dialect.Oracle;
-
-import static org.sonar.db.version.ColumnDefValidation.validateColumnName;
-
-public class BigDecimalColumnDef extends AbstractColumnDef {
-
- private BigDecimalColumnDef(Builder builder) {
- super(builder.columnName, builder.isNullable);
- }
-
- public static Builder newBigDecimalColumnDefBuilder() {
- return new Builder();
- }
-
- @Override
- public String generateSqlType(Dialect dialect) {
- return dialect.getId().equals(Oracle.ID) ? "NUMBER (38)" : "BIGINT";
- }
-
- public static class Builder {
- @CheckForNull
- private String columnName;
-
- private boolean isNullable = true;
-
- public Builder setColumnName(String columnName) {
- this.columnName = validateColumnName(columnName);
- return this;
- }
-
- public Builder setIsNullable(boolean isNullable) {
- this.isNullable = isNullable;
- return this;
- }
-
- public BigDecimalColumnDef build() {
- validateColumnName(columnName);
- return new BigDecimalColumnDef(this);
- }
- }
-
-}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+package org.sonar.db.version;
+
+import javax.annotation.CheckForNull;
+import org.sonar.db.dialect.Dialect;
+import org.sonar.db.dialect.Oracle;
+
+import static org.sonar.db.version.ColumnDefValidation.validateColumnName;
+
+public class BigIntegerColumnDef extends AbstractColumnDef {
+
+ private BigIntegerColumnDef(Builder builder) {
+ super(builder.columnName, builder.isNullable);
+ }
+
+ public static Builder newBigIntegerColumnDefBuilder() {
+ return new Builder();
+ }
+
+ @Override
+ public String generateSqlType(Dialect dialect) {
+ return dialect.getId().equals(Oracle.ID) ? "NUMBER (38)" : "BIGINT";
+ }
+
+ public static class Builder {
+ @CheckForNull
+ private String columnName;
+
+ private boolean isNullable = true;
+
+ public Builder setColumnName(String columnName) {
+ this.columnName = validateColumnName(columnName);
+ return this;
+ }
+
+ public Builder setIsNullable(boolean isNullable) {
+ this.isNullable = isNullable;
+ return this;
+ }
+
+ public BigIntegerColumnDef build() {
+ validateColumnName(columnName);
+ return new BigIntegerColumnDef(this);
+ }
+ }
+
+}
import org.sonar.db.version.AddColumnsBuilder;
import org.sonar.db.version.DdlChange;
-import static org.sonar.db.version.BigDecimalColumnDef.newBigDecimalColumnDefBuilder;
+import static org.sonar.db.version.BigIntegerColumnDef.newBigIntegerColumnDefBuilder;
import static org.sonar.db.version.VarcharColumnDef.newVarcharColumnDefBuilder;
/**
private String generateSql() {
return new AddColumnsBuilder(getDialect(), "issues")
- .addColumn(newBigDecimalColumnDefBuilder().setColumnName("issue_creation_date_ms").setIsNullable(true).build())
- .addColumn(newBigDecimalColumnDefBuilder().setColumnName("issue_update_date_ms").setIsNullable(true).build())
- .addColumn(newBigDecimalColumnDefBuilder().setColumnName("issue_close_date_ms").setIsNullable(true).build())
+ .addColumn(newBigIntegerColumnDefBuilder().setColumnName("issue_creation_date_ms").setIsNullable(true).build())
+ .addColumn(newBigIntegerColumnDefBuilder().setColumnName("issue_update_date_ms").setIsNullable(true).build())
+ .addColumn(newBigIntegerColumnDefBuilder().setColumnName("issue_close_date_ms").setIsNullable(true).build())
.addColumn(newVarcharColumnDefBuilder().setColumnName("tags").setLimit(4000).setIsNullable(true).build())
.addColumn(newVarcharColumnDefBuilder().setColumnName("component_uuid").setLimit(50).setIsNullable(true).build())
.addColumn(newVarcharColumnDefBuilder().setColumnName("project_uuid").setLimit(50).setIsNullable(true).build())
import org.sonar.db.version.AddColumnsBuilder;
import org.sonar.db.version.DdlChange;
-import static org.sonar.db.version.BigDecimalColumnDef.newBigDecimalColumnDefBuilder;
+import static org.sonar.db.version.BigIntegerColumnDef.newBigIntegerColumnDefBuilder;
/**
* Add the following columns to the active_rules table :
private String generateSql() {
return new AddColumnsBuilder(getDialect(), "active_rules")
- .addColumn(newBigDecimalColumnDefBuilder().setColumnName("created_at_ms").setIsNullable(true).build())
- .addColumn(newBigDecimalColumnDefBuilder().setColumnName("updated_at_ms").setIsNullable(true).build())
+ .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at_ms").setIsNullable(true).build())
+ .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at_ms").setIsNullable(true).build())
.build();
}
import org.sonar.db.version.DdlChange;
import org.sonar.db.version.TinyIntColumnDef;
-import static org.sonar.db.version.BigDecimalColumnDef.newBigDecimalColumnDefBuilder;
+import static org.sonar.db.version.BigIntegerColumnDef.newBigIntegerColumnDefBuilder;
/**
* Add the following columns to the rules table :
private String generateSql() {
return new AddColumnsBuilder(getDialect(), "rules")
- .addColumn(newBigDecimalColumnDefBuilder().setColumnName("created_at_ms").setIsNullable(true).build())
- .addColumn(newBigDecimalColumnDefBuilder().setColumnName("updated_at_ms").setIsNullable(true).build())
+ .addColumn(newBigIntegerColumnDefBuilder().setColumnName("created_at_ms").setIsNullable(true).build())
+ .addColumn(newBigIntegerColumnDefBuilder().setColumnName("updated_at_ms").setIsNullable(true).build())
.addColumn(new TinyIntColumnDef.Builder().setColumnName("rule_type").setIsNullable(true).build())
.build();
}
import org.sonar.db.version.AddColumnsBuilder;
import org.sonar.db.version.DdlChange;
-import static org.sonar.db.version.BigDecimalColumnDef.newBigDecimalColumnDefBuilder;
+import static org.sonar.db.version.BigIntegerColumnDef.newBigIntegerColumnDefBuilder;
public class AddLastUsedColumnToRulesProfiles extends DdlChange {
@Override
public void execute(Context context) throws SQLException {
context.execute(new AddColumnsBuilder(getDatabase().getDialect(), TABLE_QUALITY_PROFILES)
- .addColumn(newBigDecimalColumnDefBuilder().setColumnName("last_used").setIsNullable(true).build())
+ .addColumn(newBigIntegerColumnDefBuilder().setColumnName("last_used").setIsNullable(true).build())
.build());
}
import org.sonar.db.version.AddColumnsBuilder;
import org.sonar.db.version.DdlChange;
-import static org.sonar.db.version.BigDecimalColumnDef.newBigDecimalColumnDefBuilder;
+import static org.sonar.db.version.BigIntegerColumnDef.newBigIntegerColumnDefBuilder;
public class AddUserUpdatedAtToRulesProfiles extends DdlChange {
@Override
public void execute(Context context) throws SQLException {
context.execute(new AddColumnsBuilder(getDatabase().getDialect(), TABLE_QUALITY_PROFILES)
- .addColumn(newBigDecimalColumnDefBuilder().setColumnName("user_updated_at").setIsNullable(true).build())
+ .addColumn(newBigIntegerColumnDefBuilder().setColumnName("user_updated_at").setIsNullable(true).build())
.build());
}
private AddColumnsBuilder createSampleBuilder(Dialect dialect) {
return new AddColumnsBuilder(dialect, TABLE_NAME)
- .addColumn(new BigDecimalColumnDef.Builder().setColumnName("date_in_ms").setIsNullable(true).build())
+ .addColumn(new BigIntegerColumnDef.Builder().setColumnName("date_in_ms").setIsNullable(true).build())
.addColumn(new VarcharColumnDef.Builder().setColumnName("name").setLimit(10).setIsNullable(false).build());
}
}
+++ /dev/null
-/*
- * SonarQube
- * Copyright (C) 2009-2016 SonarSource SA
- * mailto:contact AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package org.sonar.db.version;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.sonar.db.dialect.H2;
-import org.sonar.db.dialect.MsSql;
-import org.sonar.db.dialect.MySql;
-import org.sonar.db.dialect.Oracle;
-import org.sonar.db.dialect.PostgreSql;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-public class BigDecimalColumnDefTest {
-
- @Rule
- public ExpectedException thrown = ExpectedException.none();
-
- @Test
- public void build_string_column_def() throws Exception {
- BigDecimalColumnDef def = new BigDecimalColumnDef.Builder()
- .setColumnName("issues")
- .setIsNullable(true)
- .build();
-
- assertThat(def.getName()).isEqualTo("issues");
- assertThat(def.isNullable()).isTrue();
- }
-
- @Test
- public void build_string_column_def_with_default_values() throws Exception {
- BigDecimalColumnDef def = new BigDecimalColumnDef.Builder()
- .setColumnName("issues")
- .build();
-
- assertThat(def.getName()).isEqualTo("issues");
- assertThat(def.isNullable()).isTrue();
- }
-
- @Test
- public void generate_sql_type() throws Exception {
- BigDecimalColumnDef def = new BigDecimalColumnDef.Builder()
- .setColumnName("issues")
- .setIsNullable(true)
- .build();
-
- assertThat(def.generateSqlType(new H2())).isEqualTo("BIGINT");
- assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("BIGINT");
- assertThat(def.generateSqlType(new MsSql())).isEqualTo("BIGINT");
- assertThat(def.generateSqlType(new MySql())).isEqualTo("BIGINT");
- assertThat(def.generateSqlType(new Oracle())).isEqualTo("NUMBER (38)");
- }
-
- @Test
- public void fail_with_NPE_if_name_is_null() throws Exception {
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("Column name cannot be null");
-
- new BigDecimalColumnDef.Builder()
- .setColumnName(null);
- }
-
- @Test
- public void fail_with_NPE_if_no_name() throws Exception {
- thrown.expect(NullPointerException.class);
- thrown.expectMessage("Column name cannot be null");
-
- new BigDecimalColumnDef.Builder()
- .build();
- }
-
-}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+package org.sonar.db.version;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.sonar.db.dialect.H2;
+import org.sonar.db.dialect.MsSql;
+import org.sonar.db.dialect.MySql;
+import org.sonar.db.dialect.Oracle;
+import org.sonar.db.dialect.PostgreSql;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class BigIntegerColumnDefTest {
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
+ @Test
+ public void build_string_column_def() throws Exception {
+ BigIntegerColumnDef def = new BigIntegerColumnDef.Builder()
+ .setColumnName("issues")
+ .setIsNullable(true)
+ .build();
+
+ assertThat(def.getName()).isEqualTo("issues");
+ assertThat(def.isNullable()).isTrue();
+ }
+
+ @Test
+ public void build_string_column_def_with_default_values() throws Exception {
+ BigIntegerColumnDef def = new BigIntegerColumnDef.Builder()
+ .setColumnName("issues")
+ .build();
+
+ assertThat(def.getName()).isEqualTo("issues");
+ assertThat(def.isNullable()).isTrue();
+ }
+
+ @Test
+ public void generate_sql_type() throws Exception {
+ BigIntegerColumnDef def = new BigIntegerColumnDef.Builder()
+ .setColumnName("issues")
+ .setIsNullable(true)
+ .build();
+
+ assertThat(def.generateSqlType(new H2())).isEqualTo("BIGINT");
+ assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("BIGINT");
+ assertThat(def.generateSqlType(new MsSql())).isEqualTo("BIGINT");
+ assertThat(def.generateSqlType(new MySql())).isEqualTo("BIGINT");
+ assertThat(def.generateSqlType(new Oracle())).isEqualTo("NUMBER (38)");
+ }
+
+ @Test
+ public void fail_with_NPE_if_name_is_null() throws Exception {
+ thrown.expect(NullPointerException.class);
+ thrown.expectMessage("Column name cannot be null");
+
+ new BigIntegerColumnDef.Builder()
+ .setColumnName(null);
+ }
+
+ @Test
+ public void fail_with_NPE_if_no_name() throws Exception {
+ thrown.expect(NullPointerException.class);
+ thrown.expectMessage("Column name cannot be null");
+
+ new BigIntegerColumnDef.Builder()
+ .build();
+ }
+
+}