public class CarDetailsHandler extends DefaultHandler {
private Company company = null;
private Category category = null;
private Model model = null;
private ModelInfo modelInfo = null;
private EngineInfo engineInfo = null;
private BreakInfo breakInfo = null;
private StringBuffer buffer = null;
private List<Model> models = null;
private List<Category> categories = null;
private StandardFeatures standardFeatures;
private static CarDetailsHandler carDetailsHandler = null;
private CarDetailsHandler() {
}
public static CarDetailsHandler getInstance() {
if (carDetailsHandler == null) {
carDetailsHandler = new CarDetailsHandler();
}
return carDetailsHandler;
}
public Company getDetails() {
return company;
}
@Override
public void startDocument() throws SAXException {
company = new Company();
categories = new ArrayList<Category>();
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
buffer = new StringBuffer();
System.out.println("now it's in start menthd");
if (localName.equalsIgnoreCase("category")) {
category = new Category();
models = new ArrayList<Model>();
} else if (localName.equalsIgnoreCase("model")) {
model = new Model();
} else if (localName.equalsIgnoreCase("info")) {
modelInfo = new ModelInfo();
} else if (localName.equalsIgnoreCase("engine")) {
engineInfo = new EngineInfo();
} else if (localName.equalsIgnoreCase("break")) {
breakInfo = new BreakInfo();
} else if (localName.equalsIgnoreCase("standardfeatures")) {
standardFeatures = new StandardFeatures();
}
// Get the number of attribute
int length = attributes.getLength();
// Process each attribute
for (int i = 0; i < length; i++) {
// Get names and values for each attribute
String name = attributes.getQName(i);
String value = attributes.getValue(i);
if (localName.equalsIgnoreCase("company")
&& name.equalsIgnoreCase("name")) {
company.setName(value);
} else if (localName.equalsIgnoreCase("category")
&& name.equalsIgnoreCase("name")) {
category.setName(value);
} else if (localName.equalsIgnoreCase("model")
&& name.equalsIgnoreCase("name")) {
model.setName(value);
} else if (localName.equalsIgnoreCase("engine")) {
if (name.equalsIgnoreCase("type")) {
engineInfo.setEngineType(value);
} else if (name.equalsIgnoreCase("cc")) {
engineInfo.setEngineCC(value);
} else if (name.equalsIgnoreCase("fuelefficiency")) {
engineInfo.setFuelEfficiency(value);
}
} else if (localName.equalsIgnoreCase("break")) {
if (name.equalsIgnoreCase("front")) {
breakInfo.setFront(value);
} else if (name.equalsIgnoreCase("rear")) {
breakInfo.setRear(value);
}
}
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if (buffer != null) {
buffer.append(ch, start, length);
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if (localName.equalsIgnoreCase("company")) {
company.setCategories(categories);
} else if (localName.equalsIgnoreCase("category")) {
category.setModels(models);
models = null;
categories.add(category);
category = null;
} else if (localName.equalsIgnoreCase("model")) {
System.out.println("model going to end");
models.add(model);
model = null;
} else if (localName.equalsIgnoreCase("description")) {
category.setDescription(buffer.toString());
} else if (localName.equalsIgnoreCase("image")) {
model.setImage(buffer.toString());
} else if (localName.equalsIgnoreCase("price")) {
model.setPrice(buffer.toString());
} else if (localName.equalsIgnoreCase("info")) {
model.setModelInfo(modelInfo);
modelInfo = null;
} else if (localName.equalsIgnoreCase("engine")) {
modelInfo.setEngineInfo(engineInfo);
engineInfo = null;
} else if (localName.equalsIgnoreCase("transmission")) {
modelInfo.setTransmission(buffer.toString());
} else if (localName.equalsIgnoreCase("steering")) {
modelInfo.setSteering(buffer.toString());
} else if (localName.equalsIgnoreCase("doors")) {
modelInfo.setDoors(buffer.toString());
} else if (localName.equalsIgnoreCase("break")) {
modelInfo.setBreakesInfo(breakInfo);
} else if (localName.equalsIgnoreCase("highlights")) {
model.setHighlights(buffer.toString());
} else if (localName.equalsIgnoreCase("standardfeatures")) {
model.setStandardFeatures(standardFeatures);
standardFeatures = null;
} else if (localName.equalsIgnoreCase("exterior")) {
standardFeatures.setExterior(buffer.toString());
} else if (localName.equalsIgnoreCase("interior")) {
standardFeatures.setInterior(buffer.toString());
} else if (localName.equalsIgnoreCase("comfort")) {
standardFeatures.setComfort(buffer.toString());
} else if (localName.equalsIgnoreCase("safety")) {
standardFeatures.setSafety(buffer.toString());
}
}
}
private Company company = null;
private Category category = null;
private Model model = null;
private ModelInfo modelInfo = null;
private EngineInfo engineInfo = null;
private BreakInfo breakInfo = null;
private StringBuffer buffer = null;
private List<Model> models = null;
private List<Category> categories = null;
private StandardFeatures standardFeatures;
private static CarDetailsHandler carDetailsHandler = null;
private CarDetailsHandler() {
}
public static CarDetailsHandler getInstance() {
if (carDetailsHandler == null) {
carDetailsHandler = new CarDetailsHandler();
}
return carDetailsHandler;
}
public Company getDetails() {
return company;
}
@Override
public void startDocument() throws SAXException {
company = new Company();
categories = new ArrayList<Category>();
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
buffer = new StringBuffer();
System.out.println("now it's in start menthd");
if (localName.equalsIgnoreCase("category")) {
category = new Category();
models = new ArrayList<Model>();
} else if (localName.equalsIgnoreCase("model")) {
model = new Model();
} else if (localName.equalsIgnoreCase("info")) {
modelInfo = new ModelInfo();
} else if (localName.equalsIgnoreCase("engine")) {
engineInfo = new EngineInfo();
} else if (localName.equalsIgnoreCase("break")) {
breakInfo = new BreakInfo();
} else if (localName.equalsIgnoreCase("standardfeatures")) {
standardFeatures = new StandardFeatures();
}
// Get the number of attribute
int length = attributes.getLength();
// Process each attribute
for (int i = 0; i < length; i++) {
// Get names and values for each attribute
String name = attributes.getQName(i);
String value = attributes.getValue(i);
if (localName.equalsIgnoreCase("company")
&& name.equalsIgnoreCase("name")) {
company.setName(value);
} else if (localName.equalsIgnoreCase("category")
&& name.equalsIgnoreCase("name")) {
category.setName(value);
} else if (localName.equalsIgnoreCase("model")
&& name.equalsIgnoreCase("name")) {
model.setName(value);
} else if (localName.equalsIgnoreCase("engine")) {
if (name.equalsIgnoreCase("type")) {
engineInfo.setEngineType(value);
} else if (name.equalsIgnoreCase("cc")) {
engineInfo.setEngineCC(value);
} else if (name.equalsIgnoreCase("fuelefficiency")) {
engineInfo.setFuelEfficiency(value);
}
} else if (localName.equalsIgnoreCase("break")) {
if (name.equalsIgnoreCase("front")) {
breakInfo.setFront(value);
} else if (name.equalsIgnoreCase("rear")) {
breakInfo.setRear(value);
}
}
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
if (buffer != null) {
buffer.append(ch, start, length);
}
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if (localName.equalsIgnoreCase("company")) {
company.setCategories(categories);
} else if (localName.equalsIgnoreCase("category")) {
category.setModels(models);
models = null;
categories.add(category);
category = null;
} else if (localName.equalsIgnoreCase("model")) {
System.out.println("model going to end");
models.add(model);
model = null;
} else if (localName.equalsIgnoreCase("description")) {
category.setDescription(buffer.toString());
} else if (localName.equalsIgnoreCase("image")) {
model.setImage(buffer.toString());
} else if (localName.equalsIgnoreCase("price")) {
model.setPrice(buffer.toString());
} else if (localName.equalsIgnoreCase("info")) {
model.setModelInfo(modelInfo);
modelInfo = null;
} else if (localName.equalsIgnoreCase("engine")) {
modelInfo.setEngineInfo(engineInfo);
engineInfo = null;
} else if (localName.equalsIgnoreCase("transmission")) {
modelInfo.setTransmission(buffer.toString());
} else if (localName.equalsIgnoreCase("steering")) {
modelInfo.setSteering(buffer.toString());
} else if (localName.equalsIgnoreCase("doors")) {
modelInfo.setDoors(buffer.toString());
} else if (localName.equalsIgnoreCase("break")) {
modelInfo.setBreakesInfo(breakInfo);
} else if (localName.equalsIgnoreCase("highlights")) {
model.setHighlights(buffer.toString());
} else if (localName.equalsIgnoreCase("standardfeatures")) {
model.setStandardFeatures(standardFeatures);
standardFeatures = null;
} else if (localName.equalsIgnoreCase("exterior")) {
standardFeatures.setExterior(buffer.toString());
} else if (localName.equalsIgnoreCase("interior")) {
standardFeatures.setInterior(buffer.toString());
} else if (localName.equalsIgnoreCase("comfort")) {
standardFeatures.setComfort(buffer.toString());
} else if (localName.equalsIgnoreCase("safety")) {
standardFeatures.setSafety(buffer.toString());
}
}
}
No comments:
Post a Comment