All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sta.cts.XMLNameSpace Maven / Gradle / Ivy


package com.sta.cts;

import java.io.Serializable;
import java.util.Enumeration;
import java.util.Hashtable;

import com.sta.mlogger.MLogger;

/**
 * 

Name: XMLNameSpace

*

Description: Darstellung der Hierarchie aus NameSpaces und NameSpace-Namen * beim Parsen einer XML-Struktur und Verwendung des XML-Scanners. *

*

Comment: ... *

*

Copyright: Copyright (c) 2014, 2016, 2017, 2019, 2021

*

Company: >StA-Soft<

* @author StA * @version 1.0 */ public class XMLNameSpace implements Serializable { /** * Die serialVersionUID. */ static final long serialVersionUID = 1813524552145780369L; //=========================================================================== /** * ?bergeordneter NameSpace, oder null. */ private XMLNameSpace myParentXMLNameSpace; /** * Standard-NameSpace, falls vorhanden. */ private String myStdNameSpace; /** * Mapping NameSpace-Name auf NameSpace. */ private Hashtable myNameSpaceName2NameSpaceHT; /** * Mapping NameSpace auf NameSpace-Name. */ private Hashtable myNameSpace2NameSpaceNameHT; //=========================================================================== /** * Standard-Constructor. */ public XMLNameSpace() { } /** * Constructor mit ?bergeordnetem NameSpace. * @param parent ?bergeordneter NameSpace */ public XMLNameSpace(XMLNameSpace parent) { myParentXMLNameSpace = parent; } //=========================================================================== /** * ?bergeordneten NameSpace vorgeben. * @param parent ?bergeordneter NameSpace */ public void setParent(XMLNameSpace parent) { myParentXMLNameSpace = parent; } /** * ?bergeordneten NameSpace ermitteln. * @return ?bergeordneter NameSpace */ public XMLNameSpace getParent() { return myParentXMLNameSpace; } /** * Standard-NameSpace vorgeben. * @param pStdNameSpace Standard-NameSpace */ public void setStdNameSpace(String pStdNameSpace) { myStdNameSpace = pStdNameSpace; } /** * Standard-NameSpace ermitteln. * @return Standard-NameSpace */ public String getStdNameSpace() { return myStdNameSpace != null ? myStdNameSpace : myParentXMLNameSpace != null ? myParentXMLNameSpace.getStdNameSpace() : null; } /** * NameSpace zu einem NameSpace-Namen ermitteln. Wird der NameSpace nicht * gefunden, wird (falls vorhanden) im Parent-NameSpace gesucht. * @param pNameSpaceName NameSpace-Name * @return NameSpace, falls gefunden, sonst null */ public String getNameSpace(String pNameSpaceName) { String ns = myNameSpaceName2NameSpaceHT != null ? myNameSpaceName2NameSpaceHT.get(pNameSpaceName) : null; return ns != null ? ns : myParentXMLNameSpace != null ? myParentXMLNameSpace.getNameSpace(pNameSpaceName) : null; } /** * NameSpace-Name zu einem NameSpace ermitteln. Wird der NameSpace-Name nicht * gefunden, wird (falls vorhanden) im Parent-NameSpace gesucht. * @param pNameSpace NameSpace * @return NameSpace-Name, falls gefunden, sonst null */ public String getNameSpaceName(String pNameSpace) { String nsn = myNameSpace2NameSpaceNameHT != null ? myNameSpace2NameSpaceNameHT.get(pNameSpace) : null; return nsn != null ? nsn : myParentXMLNameSpace != null ? myParentXMLNameSpace.getNameSpaceName(pNameSpace) : null; } /** * NameSpace-Name mit NameSpace hinzuf?gen * Gleiche Funktion wie addNameSpace. * @param pNameSpaceName NameSpace-Name (falls null: Standard-NameSpace setzen) * @param pNameSpace NameSpace */ public void addNameSpaceName(String pNameSpaceName, String pNameSpace) { if (pNameSpaceName == null) { myStdNameSpace = pNameSpace; } else { if (myNameSpaceName2NameSpaceHT == null) { myNameSpaceName2NameSpaceHT = new Hashtable(); } if (myNameSpace2NameSpaceNameHT == null) { myNameSpace2NameSpaceNameHT = new Hashtable(); } myNameSpaceName2NameSpaceHT.put(pNameSpaceName, pNameSpace); myNameSpace2NameSpaceNameHT.put(pNameSpace, pNameSpaceName); } } /** * NameSpace-Name mit NameSpace hinzuf?gen. * Gleiche Funktion wie addNameSpaceName. * @param pNameSpaceName NameSpace-Name (falls null: Standard-NameSpace setzen) * @param pNameSpace NameSpace */ public void addNameSpace(String pNameSpaceName, String pNameSpace) { addNameSpaceName(pNameSpaceName, pNameSpace); } /** * NameSpace anhand des NameSpace-Namen entfernen. * @param pNameSpaceName NameSpace-Name */ public void removeNameSpaceName(String pNameSpaceName) { if (myNameSpaceName2NameSpaceHT != null) { String ns = myNameSpaceName2NameSpaceHT.remove(pNameSpaceName); /* if (myNameSpaceName2NameSpaceHT.size() == 0) { myNameSpaceName2NameSpaceHT = null; } */ if (myNameSpace2NameSpaceNameHT != null) { myNameSpace2NameSpaceNameHT.remove(ns); /* if (myNameSpace2NameSpaceNameHT.size() == 0) { myNameSpace2NameSpaceNameHT = null; } */ } } } /** * NameSpace anhand des NameSpace selbst entfernen. * @param pNameSpace NameSpace */ public void removeNameSpace(String pNameSpace) { if (myNameSpace2NameSpaceNameHT != null) { String nsn = myNameSpace2NameSpaceNameHT.remove(pNameSpace); /* if (myNameSpace2NameSpaceNameHT.size() == 0) { myNameSpace2NameSpaceNameHT = null; } */ if (myNameSpaceName2NameSpaceHT != null) { myNameSpaceName2NameSpaceHT.remove(nsn); /* if (myNameSpaceName2NameSpaceHT.size() == 0) { myNameSpaceName2NameSpaceHT = null; } */ } } } /** * String-Darstellung in String-Buffer einf?gen. * @param sb String-Buffer * @param indent Einr?ckung, zu Beginn 0 */ public void toString(StringBuilder sb, int indent) { String spaces = MLogger.indent(indent); sb.append(spaces + "NameSpace...\n"); if (myStdNameSpace != null) { sb.append(spaces + " StdNameSpace: " + myStdNameSpace + "\n"); } if (myNameSpaceName2NameSpaceHT != null) { Enumeration names = myNameSpaceName2NameSpaceHT.keys(); while (names.hasMoreElements()) { String name = names.nextElement(); String value = myNameSpaceName2NameSpaceHT.get(name); sb.append(spaces + " " + name + " = " + value + "\n"); } } if (myParentXMLNameSpace != null) { myParentXMLNameSpace.toString(sb, indent + 1); } sb.append(spaces + "NameSpace: Ok.\n"); } @Override public String toString() { StringBuilder sb = new StringBuilder(); toString(sb, 0); return sb.toString(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy