/**
* Copyright (c) 2004-2011 Wang Jinbao(Julian Wong), http://www.ralasafe.com
* Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
*/
package org.ralasafe.db;
import java.util.ArrayList;
import java.util.List;
import org.ralasafe.ObjectNewer;
import org.ralasafe.db.MapStorageObjectNewer;
import org.ralasafe.db.MapStorgeObject;
import org.ralasafe.db.MultiValueTableAdapter;
import org.ralasafe.util.Util;
public class DefaultMultiValueTableAdapter implements MultiValueTableAdapter {
private String mapKey;
//private String idColumnName;
public DefaultMultiValueTableAdapter( String mapKey/*, String idColumnName*/ ) {
super();
this.mapKey=mapKey;
//this.idColumnName=idColumnName;
}
public void combine( Object o, Object[] extractValues ) {
if( extractValues==null )
return;
MapStorgeObject mso=(MapStorgeObject) o;
List tableMsos=new ArrayList( extractValues.length );
for( int i=0; i<extractValues.length; i++ ) {
Object value=extractValues[i];
tableMsos.add( value );
}
mso.put( mapKey, tableMsos );
}
public Object[] extract( Object o ) {
MapStorgeObject mso=(MapStorgeObject) o;
Object[] values=(Object[]) mso.get( mapKey );
return values;
}
public Object extractEvenNoValueExist( Object o ) {
MapStorgeObject mso=(MapStorgeObject) o;
Object[] values=(Object[]) mso.get( mapKey );
if( Util.isEmpty( values ) ) {
//MapStorgeObject another=new MapStorgeObject();
//another.put( idColumnName, mso.get( ) )
return mso;
} else {
return values[0];
}
}
public ObjectNewer getObjectNewer() {
return new MapStorageObjectNewer();
}
}