[android-developers] Android Parser
package citySlikkerV1.parsers;
public abstract class BaseClass
{
protected String[] mElements;
protected boolean[] mElementsState;
protected abstract void assignElementState( int ID, boolean state );
protected abstract int getElementCount();
protected abstract void setValues(int ID, String data);
}
public class KeyData extends BaseClass{
//Key Owner List
public KeyData()
{
super( );
mElements = new String[]
{
};
mElementsState = new boolean[]
{
};
}
@Override
protected void assignElementState(int ID, boolean state)
{
// TODO Auto-generated method stub
if(state && ID == 0)
{
}
mElementsState[ID] = state;
}
@Override
protected int getElementCount()
{
return this.mElements.length;
}
@Override
protected void setValues(int ID, String data)
{
// TODO Auto-generated method stub
switch( ID )
{
case 0://BUILDINFO
break;
case 1://BUILDID
BUILDID=Integer.valueOf(data);
Log.e("switch",""+BUILDID);
break;
case 2://BUILDNAME
BUILDNAME=data;
Log.e("switch",""+BUILDNAME);
break;
case 3://REVNUE
REVNUE=Float.valueOf(data);
break;
case 4://STATE
STATE=Integer.valueOf(data);
break;
//key owner infomartion
case 5://UserId
UserId=Integer.valueOf(data);
break;
case 6://UserName
UserName=data;
break;
case 7://RCode
UserRCode=Integer.valueOf(data);
break;
case 8://UserStatus
UserStatus=Integer.valueOf(data);
break;
default:
break;
}
}
public class CommonHandler extends DefaultHandler
{
// ========================================
// Methods
// ========================================
boolean CCODE = false;
boolean SCCODE = false;
boolean EVENTS = false;
int ccode = 0;
int sccode = 0;
int Elementlength =0;
BaseClass temp = null;
BaseClass event=null;
public Activity activity;
public void startDocument() throws SAXException
{
}
public void endDocument() throws SAXException
{
temp = null;
}
/** Gets be called on opening tags like:
* <tag>
* Can provide attribute(s), when xml was like:
* <tag attribute="attributeValue">*/
public void startElement(String namespaceURI, String localName,
String qName, Attributes atts) throws SAXException
{
if(localName.equals("CC"))
{
CCODE = true;
}
if( localName.equals("SC"))
{
SCCODE = true;
}
if( localName.equals("EVS"))
{
EVENTS=true;
}
if( event != null )
{
for( int i = 0; i < Elementlength; i++ )
{
if(localName.equals(event.mElements[i]))
{
event.assignElementState(i, true);
}
}
}
if( temp != null )
{
for( int i = 0; i < Elementlength; i++ )
{
if(localName.equals(temp.mElements[i]))
{
temp.assignElementState(i, true);
}
}
}
}
/** Gets be called on closing tags like:
* </tag> */
public void endElement(String namespaceURI, String localName,
String qName)
throws SAXException
{
if(localName.equals("CC"))
{
CCODE = false;
}
if( localName.equals("SC"))
{
SCCODE = false;
}
if( localName.equals("EVS"))
{
EVENTS = false;
event = null;
}
if( event != null )
{
for( int i = 0; i < Elementlength; i++ )
{
if(localName.equals(event.mElements[i]) )
{
event.assignElementState(i, false);
}
}
}
if( temp != null )
{
for( int i = 0; i < Elementlength; i++ )
{
if(localName.equals(temp.mElements[i]))
{
temp.assignElementState(i, false);
}
}
}
}
/** Gets be called on the following structure:
* <tag>characters</tag> */
public void characters(char ch[], int start, int length)
{
if(this.CCODE)
{
String tmptxt=new String(ch, start, length);
ccode=Integer.valueOf(tmptxt);
}
if(this.SCCODE)
{
String tmptxt=new String(ch, start, length);
sccode=Integer.valueOf(tmptxt);
this.resolveCmdCode();
}
if(this.EVENTS)
{
if( event == null)
{
temp=null;
event=new EventData();
Elementlength = event.getElementCount();
}
}
if( temp != null )
{
for( int i = 0; i < Elementlength; i++ )
{
if( temp.mElementsState[i] )
{
String data=new String(ch, start, length);
temp.setValues( i, data);
}
}
}
if( event != null )
{
for( int i = 0; i < Elementlength; i++ )
{
if(event.mElementsState[i])
{
String data=new String(ch, start, length);
event.setValues( i, data);
}
}
}
}
/**
* We Can Call The Respective Class Based On ccode and Subcode
*/
private void resolveCmdCode()
{
// Implement Switch Case here for the CommandCode & SubCode
switch(ccode)
{
case 1://User Info Query
break;
case 2://Building Info Query
break;
default:
break;
}
}
private void LoginData()
{
switch( sccode )
{
case 0:
temp =new LoginData();
Elementlength = temp.getElementCount();
break;
default:
break;
}
}
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home