Dictionary/src/java/org/thdl/lex/Preferences.java

638 lines
16 KiB
Java

package org.thdl.lex;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.thdl.lex.component.LexComponentException;
/**
* Description of the Class
*
* @author travis
* @created October 6, 2003
*/
public class Preferences {
// attributes
private Integer id;
private Integer userId;
private String preferencesName;
private Integer projectSubject;
private Integer source;
private Integer language;
private Integer script;
private Integer dialect;
private String note;
private boolean useDefaultProjSub;
private boolean useDefaultSource;
private boolean useDefaultLanguage;
private boolean useDefaultScript;
private boolean useDefaultDialect;
private boolean useDefaultNote;
private Integer[] projectSubjectSet;
private Integer[] sourceSet;
private Integer[] languageSet;
private Integer[] scriptSet;
private Integer[] dialectSet;
// accessors
/**
* Sets the id attribute of the Preferences object
*
* @param id
* The new id value
*/
public void setId(Integer id) {
this.id = id;
}
/**
* Sets the userId attribute of the Preferences object
*
* @param userId
* The new userId value
*/
public void setUserId(Integer userId) {
this.userId = userId;
}
/**
* Sets the preferencesName attribute of the Preferences object
*
* @param preferencesName
* The new preferencesName value
*/
public void setPreferencesName(String preferencesName) {
this.preferencesName = preferencesName;
}
/**
* Sets the useDefaultNote attribute of the Preferences object
*
* @param useDefaultNote
* The new useDefaultNote value
*/
public void setUseDefaultNote(boolean useDefaultNote) {
this.useDefaultNote = useDefaultNote;
}
/**
* Sets the useDefaultProjSub attribute of the Preferences object
*
* @param useDefaultProjSub
* The new useDefaultProjSub value
*/
public void setUseDefaultProjSub(boolean useDefaultProjSub) {
this.useDefaultProjSub = useDefaultProjSub;
}
/**
* Sets the useDefaultSource attribute of the Preferences object
*
* @param useDefaultSource
* The new useDefaultSource value
*/
public void setUseDefaultSource(boolean useDefaultSource) {
this.useDefaultSource = useDefaultSource;
}
/**
* Sets the useDefaultLanguage attribute of the Preferences object
*
* @param useDefaultLanguage
* The new useDefaultLanguage value
*/
public void setUseDefaultLanguage(boolean useDefaultLanguage) {
this.useDefaultLanguage = useDefaultLanguage;
}
/**
* Sets the useDefaultScript attribute of the Preferences object
*
* @param useDefaultScript
* The new useDefaultScript value
*/
public void setUseDefaultScript(boolean useDefaultScript) {
this.useDefaultScript = useDefaultScript;
}
/**
* Sets the useDefaultDialect attribute of the Preferences object
*
* @param useDefaultDialect
* The new useDefaultDialect value
*/
public void setUseDefaultDialect(boolean useDefaultDialect) {
this.useDefaultDialect = useDefaultDialect;
}
/**
* Sets the projectSubject attribute of the Preferences object
*
* @param projectSubject
* The new projectSubject value
*/
public void setProjectSubject(Integer projectSubject) {
this.projectSubject = projectSubject;
}
/**
* Sets the source attribute of the Preferences object
*
* @param source
* The new source value
*/
public void setSource(Integer source) {
this.source = source;
}
/**
* Sets the language attribute of the Preferences object
*
* @param language
* The new language value
*/
public void setLanguage(Integer language) {
this.language = language;
}
/**
* Sets the script attribute of the Preferences object
*
* @param script
* The new script value
*/
public void setScript(Integer script) {
this.script = script;
}
/**
* Sets the dialect attribute of the Preferences object
*
* @param dialect
* The new dialect value
*/
public void setDialect(Integer dialect) {
this.dialect = dialect;
}
/**
* Sets the projectSubjectSet attribute of the Preferences object
*
* @param projectSubjectSet
* The new projectSubjectSet value
*/
public void setProjectSubjectSet(Integer[] projectSubjectSet) {
this.projectSubjectSet = projectSubjectSet;
}
/**
* Sets the sourceSet attribute of the Preferences object
*
* @param sourceSet
* The new sourceSet value
*/
public void setSourceSet(Integer[] sourceSet) {
this.sourceSet = sourceSet;
}
/**
* Sets the languageSet attribute of the Preferences object
*
* @param languageSet
* The new languageSet value
*/
public void setLanguageSet(Integer[] languageSet) {
this.languageSet = languageSet;
}
/**
* Sets the scriptSet attribute of the Preferences object
*
* @param scriptSet
* The new scriptSet value
*/
public void setScriptSet(Integer[] scriptSet) {
this.scriptSet = scriptSet;
}
/**
* Sets the dialectSet attribute of the Preferences object
*
* @param dialectSet
* The new dialectSet value
*/
public void setDialectSet(Integer[] dialectSet) {
this.dialectSet = dialectSet;
}
/**
* Sets the note attribute of the Preferences object
*
* @param note
* The new note value
*/
public void setNote(String note) {
this.note = note;
}
/**
* Gets the id attribute of the Preferences object
*
* @return The id value
*/
public Integer getId() {
return id;
}
/**
* Gets the userId attribute of the Preferences object
*
* @return The userId value
*/
public Integer getUserId() {
return userId;
}
/**
* Gets the preferencesName attribute of the Preferences object
*
* @return The preferencesName value
*/
public String getPreferencesName() {
return preferencesName;
}
/**
* Gets the useDefaultNote attribute of the Preferences object
*
* @return The useDefaultNote value
*/
public boolean getUseDefaultNote() {
return useDefaultNote;
}
/**
* Gets the useDefaultProjSub attribute of the Preferences object
*
* @return The useDefaultProjSub value
*/
public boolean getUseDefaultProjSub() {
return useDefaultProjSub;
}
/**
* Gets the useDefaultSource attribute of the Preferences object
*
* @return The useDefaultSource value
*/
public boolean getUseDefaultSource() {
return useDefaultSource;
}
/**
* Gets the useDefaultLanguage attribute of the Preferences object
*
* @return The useDefaultLanguage value
*/
public boolean getUseDefaultLanguage() {
return useDefaultLanguage;
}
/**
* Gets the useDefaultScript attribute of the Preferences object
*
* @return The useDefaultScript value
*/
public boolean getUseDefaultScript() {
return useDefaultScript;
}
/**
* Gets the useDefaultDialect attribute of the Preferences object
*
* @return The useDefaultDialect value
*/
public boolean getUseDefaultDialect() {
return useDefaultDialect;
}
/**
* Gets the projectSubject attribute of the Preferences object
*
* @return The projectSubject value
*/
public Integer getProjectSubject() {
return projectSubject;
}
/**
* Gets the source attribute of the Preferences object
*
* @return The source value
*/
public Integer getSource() {
return source;
}
/**
* Gets the language attribute of the Preferences object
*
* @return The language value
*/
public Integer getLanguage() {
return language;
}
/**
* Gets the script attribute of the Preferences object
*
* @return The script value
*/
public Integer getScript() {
return script;
}
/**
* Gets the dialect attribute of the Preferences object
*
* @return The dialect value
*/
public Integer getDialect() {
return dialect;
}
/**
* Gets the projectSubjectSet attribute of the Preferences object
*
* @return The projectSubjectSet value
*/
public Integer[] getProjectSubjectSet() {
return projectSubjectSet;
}
/**
* Gets the sourceSet attribute of the Preferences object
*
* @return The sourceSet value
*/
public Integer[] getSourceSet() {
return sourceSet;
}
/**
* Gets the languageSet attribute of the Preferences object
*
* @return The languageSet value
*/
public Integer[] getLanguageSet() {
return languageSet;
}
/**
* Gets the scriptSet attribute of the Preferences object
*
* @return The scriptSet value
*/
public Integer[] getScriptSet() {
return scriptSet;
}
/**
* Gets the dialectSet attribute of the Preferences object
*
* @return The dialectSet value
*/
public Integer[] getDialectSet() {
return dialectSet;
}
/**
* Gets the note attribute of the Preferences object
*
* @return The note value
*/
public String getNote() {
return note;
}
// helpers
/**
* Description of the Method
*
* @exception LexRepositoryException
* Description of the Exception
* @exception LexComponentException
* Description of the Exception
*/
public void populate() throws LexRepositoryException, LexComponentException {
String sql = "SELECT * FROM Preferences WHERE userId = " + getUserId();
try {
LexRepository lr = LexRepository.getInstance();
Connection con = lr.getDataSource().getConnection();
ResultSet results = con.createStatement().executeQuery(sql);
if (LexUtilities.getResultSetSize(results) > 0) {
results.next();
setId(new Integer(results.getInt(1)));
setUserId(new Integer(results.getInt(2)));
setPreferencesName(results.getString(3));
setProjectSubject(new Integer(results.getInt(4)));
setSource(new Integer(results.getInt(5)));
setLanguage(new Integer(results.getInt(6)));
setScript(new Integer(results.getInt(7)));
setDialect(new Integer(results.getInt(8)));
setNote(results.getString(9));
Boolean bool = Boolean.valueOf(results.getString(10));
setUseDefaultProjSub(bool.booleanValue());
bool = Boolean.valueOf(results.getString(11));
setUseDefaultSource(bool.booleanValue());
bool = Boolean.valueOf(results.getString(12));
setUseDefaultLanguage(bool.booleanValue());
bool = Boolean.valueOf(results.getString(13));
setUseDefaultScript(bool.booleanValue());
bool = Boolean.valueOf(results.getString(14));
setUseDefaultDialect(bool.booleanValue());
bool = Boolean.valueOf(results.getString(15));
setUseDefaultNote(bool.booleanValue());
setProjectSubjectSet(LexUtilities.convertTokensToIntegerArray(results.getString(16)));
setSourceSet(LexUtilities.convertTokensToIntegerArray(results.getString(17)));
setLanguageSet(LexUtilities.convertTokensToIntegerArray(results.getString(18)));
setScriptSet(LexUtilities.convertTokensToIntegerArray(results.getString(19)));
setDialectSet(LexUtilities.convertTokensToIntegerArray(results.getString(20)));
} else {
insertNew();
}
con.close();
} catch (SQLException sqle) {
throw new LexComponentException(sqle.getMessage());
}
}
/**
* Description of the Method
*
* @exception LexComponentException
* Description of the Exception
*/
public void insertNew() throws LexComponentException {
try {
String sql = "INSERT INTO Preferences ( id, userId ) VALUES ( NULL, " + getUserId() + " )";
Integer i = new Integer(LexRepository.getInstance().doUpdate(sql));
setId(i);
} catch (LexRepositoryException lre) {
throw new LexComponentException(lre.getMessage());
}
}
/**
* Description of the Method
*
* @exception LexComponentException
* Description of the Exception
*/
public void save() throws LexComponentException {
try {
String sql = "SELECT id FROM Preferences WHERE userId = " + getUserId();
LexRepository lr = LexRepository.getInstance();
Connection con = lr.getDataSource().getConnection();
ResultSet results = con.createStatement().executeQuery(sql);
if (LexUtilities.getResultSetSize(results) < 1) {
insertNew();
}
con.close();
StringBuffer sqlBuffer = new StringBuffer();
sqlBuffer.append("UPDATE Preferences SET userId = ");
sqlBuffer.append(getUserId());
sqlBuffer.append(", preferencesName = '");
sqlBuffer.append(getPreferencesName());
sqlBuffer.append("', projectSubject = ");
sqlBuffer.append(getProjectSubject());
sqlBuffer.append(", source = ");
sqlBuffer.append(getSource());
sqlBuffer.append(", language = ");
sqlBuffer.append(getLanguage());
sqlBuffer.append(", script = ");
sqlBuffer.append(getScript());
sqlBuffer.append(", dialect = ");
sqlBuffer.append(getDialect());
sqlBuffer.append(", note = '");
sqlBuffer.append(LexUtilities.escape(getNote()));
sqlBuffer.append("', useDefaultProjSub = '");
sqlBuffer.append(getUseDefaultProjSub());
sqlBuffer.append("', useDefaultSource = '");
sqlBuffer.append(getUseDefaultSource());
sqlBuffer.append("', useDefaultLanguage = '");
sqlBuffer.append(getUseDefaultLanguage());
sqlBuffer.append("', useDefaultScript = '");
sqlBuffer.append(getUseDefaultScript());
sqlBuffer.append("', useDefaultDialect = '");
sqlBuffer.append(getUseDefaultDialect());
sqlBuffer.append("', useDefaultNote = '");
sqlBuffer.append(getUseDefaultNote());
sqlBuffer.append("', projectSubjectSet = '");
sqlBuffer.append(LexUtilities.convertIntegerArrayToTokens(getProjectSubjectSet()));
sqlBuffer.append("', sourceSet = '");
sqlBuffer.append(LexUtilities.convertIntegerArrayToTokens(getSourceSet()));
sqlBuffer.append("', languageSet = '");
sqlBuffer.append(LexUtilities.convertIntegerArrayToTokens(getLanguageSet()));
sqlBuffer.append("', scriptSet = '");
sqlBuffer.append(LexUtilities.convertIntegerArrayToTokens(getScriptSet()));
sqlBuffer.append("', dialectSet = '");
sqlBuffer.append(LexUtilities.convertIntegerArrayToTokens(getDialectSet()));
sqlBuffer.append("' WHERE id = ");
sqlBuffer.append(getId());
LexRepository.getInstance().doUpdate(sqlBuffer.toString());
} catch (LexRepositoryException lre) {
throw new LexComponentException(lre.getMessage());
} catch (SQLException sqle) {
throw new LexComponentException(sqle.getMessage());
}
}
/**
* The main program for the Preferences class
*
* @param args
* The command line arguments
*/
public static void main(String[] args) {
try {
Preferences component = new Preferences();
component.setUserId(new Integer(2));
component.save();
System.out.println(component.getId() + " " + component.getUserId());
} catch (Exception e) {
e.printStackTrace();
}
}
// constructors
/**
* Constructor for the Preferences object
*/
public Preferences() {
setId(new Integer(0));
setUserId(new Integer(1));
setProjectSubject(new Integer(1));
setSource(new Integer(1));
setLanguage(new Integer(1));
setScript(new Integer(1));
setDialect(new Integer(1));
Integer[] temp = { getProjectSubject() };
setProjectSubjectSet(temp);
Integer[] temp2 = { getSource() };
setSourceSet(temp2);
Integer[] temp3 = { getLanguage() };
setLanguageSet(temp3);
Integer[] temp4 = { getDialect() };
setDialectSet(temp4);
Integer[] temp5 = { getScript() };
setScriptSet(temp5);
setNote("Default Note");
}
/**
* Constructor for the Preferences object
*
* @param user
* Description of the Parameter
* @exception LexRepositoryException
* Description of the Exception
* @exception LexComponentException
* Description of the Exception
*/
public Preferences(LexUser user) throws LexRepositoryException, LexComponentException {
this();
setUserId(user.getId());
populate();
/*
* setProjectSubject( user.getDefaultProjSub() ); setSource(
* user.getDefaultSource() ); setLanguage( user.getDefaultLanguage() );
* setScript( user.getDefaultScript() ); setDialect(
* user.getDefaultDialect() );
*/
}
}