Hallo,
Ich bin relativ neu zu Java. Versuche ein Java model für Computer Netzwerke zu erweitern.
Problem: lese XML Datei und generiere einzelne Objekte.
Ich habe schon eine Mehtode, die die einzelne Objekte liest und zentral erzeugt. Aber ich muss die Objekte in einzelne Klassen lesen. wie z.B. Client.java muss eine Methode haben, der nur Client Objekte liest.
<Client name="client">
<MemorySize>1024M</MemorySize>
<CacheSize>0</CacheSize>
<InstructionPerSecond>1000</InstructionPerSecond>
<Bandwidth>100M</Bandwidth>
<Latency>0</Latency>
</Client>
MIR SCHEINT ES UNSINVOLL, DAS IN JEDE KLASSSE SEPERAT SEIN EINZELNE TEIL LISET. ABER AUS READXML() EIN E SCHNITTSTELLE SEIN SOLL, MUSS ICH JA WOHL SO PROGRAMMIREN.
Kann jemand mir eine Idee geben?
Ich bin relativ neu zu Java. Versuche ein Java model für Computer Netzwerke zu erweitern.
Problem: lese XML Datei und generiere einzelne Objekte.
Ich habe schon eine Mehtode, die die einzelne Objekte liest und zentral erzeugt. Aber ich muss die Objekte in einzelne Klassen lesen. wie z.B. Client.java muss eine Methode haben, der nur Client Objekte liest.
<Client name="client">
<MemorySize>1024M</MemorySize>
<CacheSize>0</CacheSize>
<InstructionPerSecond>1000</InstructionPerSecond>
<Bandwidth>100M</Bandwidth>
<Latency>0</Latency>
</Client>
MIR SCHEINT ES UNSINVOLL, DAS IN JEDE KLASSSE SEPERAT SEIN EINZELNE TEIL LISET. ABER AUS READXML() EIN E SCHNITTSTELLE SEIN SOLL, MUSS ICH JA WOHL SO PROGRAMMIREN.
Kann jemand mir eine Idee geben?
Code:
private void readComponents(Element templateRoot) throws Exception {
ArrayList<Element> list;
HashMap<String, Component> map;
Class partypes[] = new Class[1];
partypes[0] = Element.class;
Object arglist[] = new Object[1];
for (Class<Component> c : componentTypes) {
String className = c.getSimpleName();
map = new HashMap<String, Component>();
components.put(c, map);
Element element = XMLutil.getFirstElementByTag(templateRoot, className
+ "List");
if (element == null) {
throw new IllegalArgumentException("No component list exists for type "
+ className);
}
list = XMLutil.getElementsByTag(element, className);
for (Element e : list) {
Constructor<Component> ct = c.getConstructor(partypes);
arglist[0] = (Element) e;
Component o = ct.newInstance(arglist);
if (map.get(o.getName()) != null) {
throw new IllegalArgumentException("Component with name "
+ o.getName() + " already exists for components: " + className);
}
map.put(o.getName(), o);
if (componentNameMap.get(o.getName()) != null) {
throw new IllegalArgumentException("Component with name "
+ o.getName()
+ " already exists, you need a unique component name ");
}
componentNameMap.put(o.getName(), o);
if (o.getTemplateName() != null) {
Component template = templates.get(c).get(o.getTemplateName());
if (template == null) {
throw new IllegalArgumentException("Template not available "
+ o.getTemplateName() + " for components: " + c.getSimpleName());
}
o.setTemplateValue(template);
}
}
}
}