701 lines
16 KiB
Java
701 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.*;
|
|
|
|
import org.thdl.users.*;
|
|
|
|
|
|
/**
|
|
* 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( ThdlUser user ) throws LexRepositoryException, LexComponentException
|
|
{
|
|
this();
|
|
setUserId( user.getId() );
|
|
populate();
|
|
/*
|
|
setProjectSubject( user.getDefaultProjSub() );
|
|
setSource( user.getDefaultSource() );
|
|
setLanguage( user.getDefaultLanguage() );
|
|
setScript( user.getDefaultScript() );
|
|
setDialect( user.getDefaultDialect() );
|
|
*/
|
|
}
|
|
}
|
|
|