import java.util.Map;
import org.cacert.gigi.GigiApiException;
+import org.cacert.gigi.database.DBEnum;
import org.cacert.gigi.database.GigiPreparedStatement;
import org.cacert.gigi.database.GigiResultSet;
import org.cacert.gigi.dbObjects.NamePart.NamePartType;
public class Name implements Outputable, IdCachable {
+ public static enum NameSchemaType implements DBEnum {
+ SINGLE, WESTERN;
+
+ @Override
+ public String getDBName() {
+ return toString().toLowerCase();
+ }
+
+ }
+
private abstract static class SchemedName {
/**
*/
public abstract String toAbbreviatedString();
- public abstract String getSchemeName();
+ public abstract NameSchemaType getSchemeName();
/**
* @see Name#output(PrintWriter, Language, Map)
}
@Override
- public String getSchemeName() {
- return "single";
+ public NameSchemaType getSchemeName() {
+ return NameSchemaType.SINGLE;
}
@Override
}
@Override
- public String getSchemeName() {
- return "western";
+ public NameSchemaType getSchemeName() {
+ return NameSchemaType.WESTERN;
}
@Override
}
try (GigiPreparedStatement inserter = new GigiPreparedStatement("INSERT INTO `names` SET `uid`=?, `type`=?::`nameSchemaType`")) {
inserter.setInt(1, u.getId());
- inserter.setString(2, scheme.getSchemeName());
+ inserter.setEnum(2, scheme.getSchemeName());
inserter.execute();
id = inserter.lastInsertId();
}
inserter.setInt(1, id);
for (int i = 0; i < np.length; i++) {
inserter.setInt(2, i);
- inserter.setString(3, np[i].getType().getDbValue());
+ inserter.setEnum(3, np[i].getType());
inserter.setString(4, np[i].getValue());
inserter.execute();
}
}
public int getAssurancePoints() {
- try (GigiPreparedStatement query = new GigiPreparedStatement("SELECT SUM(`points`) FROM (SELECT DISTINCT ON (`from`) `points` FROM `notary` WHERE `to`=? AND `deleted` IS NULL AND (`expire` IS NULL OR `expire` > CURRENT_TIMESTAMP) ORDER BY `from`, `when` DESC) AS p")) {
+ try (GigiPreparedStatement query = new GigiPreparedStatement("SELECT SUM(`points`) FROM (SELECT DISTINCT ON (`from`, `method`) `points` FROM `notary` WHERE `to`=? AND `deleted` IS NULL AND (`expire` IS NULL OR `expire` > CURRENT_TIMESTAMP) ORDER BY `from`, `method`, `when` DESC) AS p")) {
query.setInt(1, getId());
GigiResultSet rs = query.executeQuery();