Tuesday, December 8, 2009

[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


Real Estate