📄 dominputcapsule.java
字号:
ret.setTexture(t, i); } } catch (Exception e) { Logger.getLogger(DOMInputCapsule.class.getName()).log(Level.SEVERE, null, e); } currentElem = el; return ret; } private Savable[] readRenderStateList(Element fromElement, Savable[] defVal) { Savable[] ret = defVal; try { Renderer r = DisplaySystem.getDisplaySystem().getRenderer(); int size = RenderState.StateType.values().length; Savable[] tmp = new Savable[size]; currentElem = findFirstChildElement(fromElement); while (currentElem != null) { Element el = currentElem; RenderState rs = null; if (el.getNodeName().equals("com.jme.scene.state.TextureState")) { rs = readTextureStateFromCurrent(); } else { rs = (RenderState) (readSavableFromCurrentElem(null)); } if (rs != null) { tmp[rs.getStateType().ordinal()] = rs; } currentElem = findNextSiblingElement(el); ret = tmp; } } catch (Exception e) { Logger.getLogger(DOMInputCapsule.class.getName()).log(Level.SEVERE, null, e); } return ret; } public Savable[] readSavableArray(String name, Savable[] defVal) throws IOException { Savable[] ret = defVal; try { Element tmpEl = findChildElement(currentElem, name); if (tmpEl == null) { return defVal; } if (name.equals("renderStateList")) { ret = readRenderStateList(tmpEl, defVal); } else { int size = Integer.parseInt(tmpEl.getAttribute("size")); Savable[] tmp = new Savable[size]; currentElem = findFirstChildElement(tmpEl); for (int i = 0; i < size; i++) { tmp[i] = (readSavableFromCurrentElem(null)); if (i == size - 1) { break; } currentElem = findNextSiblingElement(currentElem); } ret = tmp; } currentElem = (Element) tmpEl.getParentNode(); } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public Savable[][] readSavableArray2D(String name, Savable[][] defVal) throws IOException { Savable[][] ret = defVal; try { Element tmpEl = findChildElement(currentElem, name); if (tmpEl == null) { return defVal; } int size_outer = Integer.parseInt(tmpEl.getAttribute("size_outer")); int size_inner = Integer.parseInt(tmpEl.getAttribute("size_outer")); Savable[][] tmp = new Savable[size_outer][size_inner]; currentElem = findFirstChildElement(tmpEl); for (int i = 0; i < size_outer; i++) { for (int j = 0; j < size_inner; j++) { tmp[i][j] = (readSavableFromCurrentElem(null)); if (i == size_outer - 1 && j == size_inner - 1) { break; } currentElem = findNextSiblingElement(currentElem); } } ret = tmp; currentElem = (Element) tmpEl.getParentNode(); } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public ArrayList<Savable> readSavableArrayList(String name, ArrayList defVal) throws IOException { ArrayList<Savable> ret = defVal; try { Element tmpEl = findChildElement(currentElem, name); if (tmpEl == null) { return defVal; } String s = tmpEl.getAttribute("size"); int size = Integer.parseInt(s); ArrayList<Savable> tmp = new ArrayList<Savable>(); currentElem = findFirstChildElement(tmpEl); for (int i = 0; i < size; i++) { tmp.add(readSavableFromCurrentElem(null)); if (i == size - 1) { break; } currentElem = findNextSiblingElement(currentElem); } ret = tmp; currentElem = (Element) tmpEl.getParentNode(); } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public ArrayList[] readSavableArrayListArray(String name, ArrayList[] defVal) throws IOException { ArrayList[] ret = defVal; try { Element tmpEl = findChildElement(currentElem, name); if (tmpEl == null) { return defVal; } currentElem = tmpEl; int size = Integer.parseInt(tmpEl.getAttribute("size")); ArrayList[] tmp = new ArrayList[size]; for (int i = 0; i < size; i++) { StringBuilder buf = new StringBuilder("SavableArrayList_"); buf.append(i); ArrayList al = readSavableArrayList(buf.toString(), null); tmp[i] = al; if (i == size - 1) { break; } } ret = tmp; currentElem = (Element) tmpEl.getParentNode(); } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public ArrayList[][] readSavableArrayListArray2D(String name, ArrayList[][] defVal) throws IOException { ArrayList[][] ret = defVal; try { Element tmpEl = findChildElement(currentElem, name); if (tmpEl == null) { return defVal; } currentElem = tmpEl; int size = Integer.parseInt(tmpEl.getAttribute("size")); ArrayList[][] tmp = new ArrayList[size][]; for (int i = 0; i < size; i++) { ArrayList[] arr = readSavableArrayListArray("SavableArrayListArray_" + i, null); tmp[i] = arr; } ret = tmp; currentElem = (Element) tmpEl.getParentNode(); } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public ArrayList readFloatBufferArrayList(String name, ArrayList<FloatBuffer> defVal) throws IOException { ArrayList<FloatBuffer> ret = defVal; try { Element tmpEl = findChildElement(currentElem, name); if (tmpEl == null) { return defVal; } int size = Integer.parseInt(tmpEl.getAttribute("size")); ArrayList<FloatBuffer> tmp = new ArrayList<FloatBuffer>(size); currentElem = findFirstChildElement(tmpEl); for (int i = 0; i < size; i++) { tmp.add(readFloatBuffer(null, null)); if (i == size - 1) { break; } currentElem = findNextSiblingElement(currentElem); } ret = tmp; currentElem = (Element) tmpEl.getParentNode(); } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public Map<? extends Savable, ? extends Savable> readSavableMap(String name, Map<? extends Savable, ? extends Savable> defVal) throws IOException { Map<Savable, Savable> ret; Element tempEl; if (name != null) { tempEl = findChildElement(currentElem, name); } else { tempEl = currentElem; } ret = new HashMap<Savable, Savable>(); NodeList nodes = tempEl.getChildNodes(); for (int i = 0; i < nodes.getLength(); i++) { Node n = nodes.item(i); if (n instanceof Element && n.getNodeName().equals("MapEntry")) { Element elem = (Element) n; currentElem = elem; Savable key = readSavable(XMLExporter.ELEMENT_KEY, null); Savable val = readSavable(XMLExporter.ELEMENT_VALUE, null); ret.put(key, val); } } currentElem = (Element) tempEl.getParentNode(); return ret; } public Map<String, ? extends Savable> readStringSavableMap(String name, Map<String, ? extends Savable> defVal) throws IOException { Map<String, Savable> ret = null; Element tempEl; if (name != null) { tempEl = findChildElement(currentElem, name); } else { tempEl = currentElem; } if (tempEl != null) { ret = new HashMap<String, Savable>(); NodeList nodes = tempEl.getChildNodes(); for (int i = 0; i < nodes.getLength(); i++) { Node n = nodes.item(i); if (n instanceof Element && n.getNodeName().equals("MapEntry")) { Element elem = (Element) n; currentElem = elem; String key = currentElem.getAttribute("key"); Savable val = readSavable("Savable", null); ret.put(key, val); } } } else { return defVal; } currentElem = (Element) tempEl.getParentNode(); return ret; } /** * reads from currentElem if name is null */ public FloatBuffer readFloatBuffer(String name, FloatBuffer defVal) throws IOException { FloatBuffer ret = defVal; try { Element tmpEl; if (name != null) { tmpEl = findChildElement(currentElem, name); } else { tmpEl = currentElem; } if (tmpEl == null) { return defVal; } int size = Integer.parseInt(tmpEl.getAttribute("size")); FloatBuffer tmp = BufferUtils.createFloatBuffer(size); String[] strings = tmpEl.getAttribute("data").split("\\s+"); for (String s : strings) { tmp.put(Float.parseFloat(s)); } tmp.flip(); ret = tmp; } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public IntBuffer readIntBuffer(String name, IntBuffer defVal) throws IOException { IntBuffer ret = defVal; try { Element tmpEl = findChildElement(currentElem, name); if (tmpEl == null) { return defVal; } int size = Integer.parseInt(tmpEl.getAttribute("size")); IntBuffer tmp = BufferUtils.createIntBuffer(size); String[] strings = tmpEl.getAttribute("data").split("\\s+"); for (String s : strings) { tmp.put(Integer.parseInt(s)); } tmp.flip(); ret = tmp; } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public ByteBuffer readByteBuffer(String name, ByteBuffer defVal) throws IOException { ByteBuffer ret = defVal; try { Element tmpEl = findChildElement(currentElem, name); if (tmpEl == null) { return defVal; } int size = Integer.parseInt(tmpEl.getAttribute("size")); ByteBuffer tmp = BufferUtils.createByteBuffer(size); String[] strings = tmpEl.getAttribute("data").split("\\s+"); for (String s : strings) { tmp.put(Byte.valueOf(s)); } tmp.flip(); ret = tmp; } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public ShortBuffer readShortBuffer(String name, ShortBuffer defVal) throws IOException { ShortBuffer ret = defVal; try { Element tmpEl = findChildElement(currentElem, name); if (tmpEl == null) { return defVal; } int size = Integer.parseInt(tmpEl.getAttribute("size")); ShortBuffer tmp = BufferUtils.createShortBuffer(size); String[] strings = tmpEl.getAttribute("data").split("\\s+"); for (String s : strings) { tmp.put(Short.valueOf(s)); } tmp.flip(); ret = tmp; } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public ArrayList<ByteBuffer> readByteBufferArrayList(String name, ArrayList<ByteBuffer> defVal) throws IOException { ArrayList<ByteBuffer> ret = defVal; try { Element tmpEl = findChildElement(currentElem, name); if (tmpEl == null) { return defVal; } int size = Integer.parseInt(tmpEl.getAttribute("size")); ArrayList<ByteBuffer> tmp = new ArrayList<ByteBuffer>(size); currentElem = findFirstChildElement(tmpEl); for (int i = 0; i < size; i++) { tmp.add(readByteBuffer(null, null)); if (i == size - 1) { break; } currentElem = findNextSiblingElement(currentElem); } ret = tmp; currentElem = (Element) tmpEl.getParentNode(); } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; } public <T extends Enum<T>> T readEnum(String name, Class<T> enumType, T defVal) throws IOException { T ret = defVal; try { String eVal = currentElem.getAttribute(name); if (eVal != null && eVal.length() > 0) { ret = Enum.valueOf(enumType, eVal); } } catch (Exception e) { IOException ex = new IOException(); ex.initCause(e); throw ex; } return ret; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -