/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.vertical.engine.processors; import java.util.HashMap; import com.enonic.vertical.engine.dbmodel.UserTable; import org.w3c.dom.Element; import com.enonic.esl.sql.model.Column; import com.enonic.vertical.engine.XDG; import com.enonic.vertical.engine.handlers.CommonHandler; public class UserElementProcessor implements ElementProcessor { private CommonHandler commonHandler; private HashMap userMap = new HashMap(); public UserElementProcessor( CommonHandler commonHandler ) { this.commonHandler = commonHandler; } public void process( Element elem ) { String userKey = elem.getAttribute( "userkey" ); String[] strings; if ( userMap.containsKey( userKey ) ) { strings = (String[]) userMap.get( userKey ); } else { Column[] selectColumns = new Column[]{UserTable.INSTANCE.usr_sUID, UserTable.INSTANCE.usr_sFullName}; Column[] whereColumns = new Column[]{UserTable.INSTANCE.usr_hKey}; StringBuffer sql = XDG.generateSelectSQL( UserTable.INSTANCE, selectColumns, false, whereColumns ); strings = commonHandler.getStrings( sql.toString(), new Object[]{userKey} ); userMap.put( userKey, strings ); } elem.setAttribute( "uid", strings[0] ); elem.setAttribute( "username", strings[1] ); } }