Java: Une classe utilitaire pour la gestion efficace des attributs

Author:

Java: Une classe utilitaire pour la gestion efficace des attributs
{filelink=8371}

/***** Code de MesExemples.com *******/
 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */import org.xml.sax.Attributes;/** * An Attributes implementation that can perform more operations than the * attribute list helper supplied with the standard SAX2 distribution. */public class AttributesImpl implements Attributes {  //  // Data  //  /** Head node. */  private ListNode head;  /** Tail node. */  private ListNode tail;  /** Length. */  private int length;  //  // Attributes methods  //  /** Returns the number of attributes. */  public int getLength() {    return length;  }  /** Returns the index of the specified attribute. */  public int getIndex(String raw) {    ListNode place = head;    int index = 0;    while (place != null) {      if (place.raw.equals(raw)) {        return index;      }      index++;      place = place.next;    }    return -1;  }  /** Returns the index of the specified attribute. */  public int getIndex(String uri, String local) {    ListNode place = head;    int index = 0;    while (place != null) {      if (place.uri.equals(uri) && place.local.equals(local)) {        return index;      }      index++;      place = place.next;    }    return -1;  }  /** Returns the attribute URI by index. */  public String getURI(int index) {    ListNode node = getListNodeAt(index);    return node != null ? node.uri : null;  } // getURI(int):String  /** Returns the attribute local name by index. */  public String getLocalName(int index) {    ListNode node = getListNodeAt(index);    return node != null ? node.local : null;  } // getLocalName(int):String  /** Returns the attribute raw name by index. */  public String getQName(int index) {    ListNode node = getListNodeAt(index);    return node != null ? node.raw : null;  } // getQName(int):String  /** Returns the attribute type by index. */  public String getType(int index) {    ListNode node = getListNodeAt(index);    return (node != null) ? node.type : null;  } // getType(int):String  /** Returns the attribute type by uri and local. */  public String getType(String uri, String local) {    ListNode node = getListNode(uri, local);    return (node != null) ? node.type : null;  } // getType(String,String):String  /** Returns the attribute type by raw name. */  public String getType(String raw) {    ListNode node = getListNode(raw);    return (node != null) ? node.type : null;  } // getType(String):String  /** Returns the attribute value by index. */  public String getValue(int index) {    ListNode node = getListNodeAt(index);    return (node != null) ? node.value : null;  } // getType(int):String  /** Returns the attribute value by uri and local. */  public String getValue(String uri, String local) {    ListNode node = getListNode(uri, local);    return (node != null) ? node.value : null;  } // getType(String):String  /** Returns the attribute value by raw name. */  public String getValue(String raw) {    ListNode node = getListNode(raw);    return (node != null) ? node.value : null;  } // getType(String):String  //  // Public methods  //  /** Adds an attribute. */  public void addAttribute(String raw, String type, String value) {    addAttribute(null, null, raw, type, value);  }  /** Adds an attribute. */  public void addAttribute(String uri, String local, String raw, String type, String value) {    ListNode node = new ListNode(uri, local, raw, type, value);    if (length == 0) {      head = node;    } else {      tail.next = node;    }    tail = node;    length++;  } // addAttribute(String,StringString,String,String)  /** Inserts an attribute. */  public void insertAttributeAt(int index, String raw, String type, String value) {    insertAttributeAt(index, null, null, raw, type, value);  }  /** Inserts an attribute. */  public void insertAttributeAt(int index, String uri, String local, String raw, String type,      String value) {    // if list is empty, add attribute    if (length == 0 || index >= length) {      addAttribute(uri, local, raw, type, value);      return;    }    // insert at beginning of list    ListNode node = new ListNode(uri, local, raw, type, value);    if (index < 1) {      node.next = head;      head = node;    } else {      ListNode prev = getListNodeAt(index - 1);      node.next = prev.next;      prev.next = node;    }    length++;  } // insertAttributeAt(int,String,String,String,String,String)  /** Removes an attribute. */  public void removeAttributeAt(int index) {    if (length == 0) {      return;    }    if (index == 0) {      head = head.next;      if (head == null) {        tail = null;      }      length--;    } else {      ListNode prev = getListNodeAt(index - 1);      ListNode node = getListNodeAt(index);      if (node != null) {        prev.next = node.next;        if (node == tail) {          tail = prev;        }        length--;      }    }  } // removeAttributeAt(int)  /** Removes the specified attribute. */  public void removeAttribute(String raw) {    removeAttributeAt(getIndex(raw));  }  /** Removes the specified attribute. */  public void removeAttribute(String uri, String local) {    removeAttributeAt(getIndex(uri, local));  }  //  // Private methods  //  /** Returns the node at the specified index. */  private ListNode getListNodeAt(int i) {    for (ListNode place = head; place != null; place = place.next) {      if (--i == -1) {        return place;      }    }    return null;  } // getListNodeAt(int):ListNode  /** Returns the first node with the specified uri and local. */  public ListNode getListNode(String uri, String local) {    if (uri != null && local != null) {      ListNode place = head;      while (place != null) {        if (place.uri != null && place.local != null && place.uri.equals(uri)            && place.local.equals(local)) {          return place;        }        place = place.next;      }    }    return null;  } // getListNode(String,String):ListNode  /** Returns the first node with the specified raw name. */  private ListNode getListNode(String raw) {    if (raw != null) {      for (ListNode place = head; place != null; place = place.next) {        if (place.raw != null && place.raw.equals(raw)) {          return place;        }      }    }    return null;  } // getListNode(String):ListNode  //  // Object methods  //  /** Returns a string representation of this object. */  public String toString() {    StringBuffer str = new StringBuffer();    str.append('[');    str.append("len=");    str.append(length);    str.append(", {");    for (ListNode place = head; place != null; place = place.next) {      str.append(place.toString());      if (place.next != null) {        str.append(", ");      }    }    str.append("}]");    return str.toString();  } // toString():String  //  // Classes  //  /**   * An attribute node.   */  static class ListNode {    //    // Data    //    /** Attribute uri. */    public String uri;    /** Attribute local. */    public String local;    /** Attribute raw. */    public String raw;    /** Attribute type. */    public String type;    /** Attribute value. */    public String value;    /** Next node. */    public ListNode next;    //    // Constructors    //    /** Constructs a list node. */    public ListNode(String uri, String local, String raw, String type, String value) {      this.uri = uri;      this.local = local;      this.raw = raw;      this.type = type;      this.value = value;    } // (String,String,String,String,String)    //    // Object methods    //    /** Returns string representation of this object. */    public String toString() {      return raw != null ? raw : local;    }  } // class ListNode} // class AttributesImpl     

Code testé avec le fichier XML Suivant




	Sakoba
	Adams
	Rappel
	Ne m'oubliez pas ce week-end!

Leave a Reply

Your email address will not be published. Required fields are marked *

Java: Une classe utilitaire pour la gestion efficace des attributs

Author:

Java: Une classe utilitaire pour la gestion efficace des attributs
{filelink=8371}

/***** Code de MesExemples.com *******/
/***** Code de MesExemples.com *******/

 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License");
 you may not use this file except in compliance with * the License.  You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
import org.xml.sax.Attributes;
/** * An Attributes implementation that can perform more operations than the * attribute list helper supplied with the standard SAX2 distribution. */
public class AttributesImpl implements Attributes {
  //  // Data  //  /** Head node. */
  private ListNode head;
  /** Tail node. */
  private ListNode tail;
  /** Length. */
  private int length;
  //  // Attributes methods  //  /** Returns the number of attributes. */
  public int getLength() {
    return length;
  }
  /** Returns the index of the specified attribute. */
  public int getIndex(String raw) {
    ListNode place = head;
    int index = 0;
    while (place != null) {
      if (place.raw.equals(raw)) {
        return index;
      }
      index++;
      place = place.next;
    }
    return -1;
  }
  /** Returns the index of the specified attribute. */
  public int getIndex(String uri, String local) {
    ListNode place = head;
    int index = 0;
    while (place != null) {
      if (place.uri.equals(uri) &
& place.local.equals(local)) {
        return index;
      }
      index++;
      place = place.next;
    }
    return -1;
  }
  /** Returns the attribute URI by index. */
  public String getURI(int index) {
    ListNode node = getListNodeAt(index);
    return node != null ? node.uri : null;
  }
 // getURI(int):String  /** Returns the attribute local name by index. */
  public String getLocalName(int index) {
    ListNode node = getListNodeAt(index);
    return node != null ? node.local : null;
  }
 // getLocalName(int):String  /** Returns the attribute raw name by index. */
  public String getQName(int index) {
    ListNode node = getListNodeAt(index);
    return node != null ? node.raw : null;
  }
 // getQName(int):String  /** Returns the attribute type by index. */
  public String getType(int index) {
    ListNode node = getListNodeAt(index);
    return (node != null) ? node.type : null;
  }
 // getType(int):String  /** Returns the attribute type by uri and local. */
  public String getType(String uri, String local) {
    ListNode node = getListNode(uri, local);
    return (node != null) ? node.type : null;
  }
 // getType(String,String):String  /** Returns the attribute type by raw name. */
  public String getType(String raw) {
    ListNode node = getListNode(raw);
    return (node != null) ? node.type : null;
  }
 // getType(String):String  /** Returns the attribute value by index. */
  public String getValue(int index) {
    ListNode node = getListNodeAt(index);
    return (node != null) ? node.value : null;
  }
 // getType(int):String  /** Returns the attribute value by uri and local. */
  public String getValue(String uri, String local) {
    ListNode node = getListNode(uri, local);
    return (node != null) ? node.value : null;
  }
 // getType(String):String  /** Returns the attribute value by raw name. */
  public String getValue(String raw) {
    ListNode node = getListNode(raw);
    return (node != null) ? node.value : null;
  }
 // getType(String):String  //  // Public methods  //  /** Adds an attribute. */
  public void addAttribute(String raw, String type, String value) {
    addAttribute(null, null, raw, type, value);
  }
  /** Adds an attribute. */
  public void addAttribute(String uri, String local, String raw, String type, String value) {
    ListNode node = new ListNode(uri, local, raw, type, value);
    if (length == 0) {
      head = node;
    }
 else {
      tail.next = node;
    }
    tail = node;
    length++;
  }
 // addAttribute(String,StringString,String,String)  /** Inserts an attribute. */
  public void insertAttributeAt(int index, String raw, String type, String value) {
    insertAttributeAt(index, null, null, raw, type, value);
  }
  /** Inserts an attribute. */
  public void insertAttributeAt(int index, String uri, String local, String raw, String type,      String value) {
    // if list is empty, add attribute    if (length == 0 || index >= length) {
      addAttribute(uri, local, raw, type, value);
      return;
    }
    // insert at beginning of list    ListNode node = new ListNode(uri, local, raw, type, value);
    if (index < 1) {
      node.next = head;
      head = node;
    }
 else {
      ListNode prev = getListNodeAt(index - 1);
      node.next = prev.next;
      prev.next = node;
    }
    length++;
  }
 // insertAttributeAt(int,String,String,String,String,String)  /** Removes an attribute. */
  public void removeAttributeAt(int index) {
    if (length == 0) {
      return;
    }
    if (index == 0) {
      head = head.next;
      if (head == null) {
        tail = null;
      }
      length--;
    }
 else {
      ListNode prev = getListNodeAt(index - 1);
      ListNode node = getListNodeAt(index);
      if (node != null) {
        prev.next = node.next;
        if (node == tail) {
          tail = prev;
        }
        length--;
      }
    }
  }
 // removeAttributeAt(int)  /** Removes the specified attribute. */
  public void removeAttribute(String raw) {
    removeAttributeAt(getIndex(raw));
  }
  /** Removes the specified attribute. */
  public void removeAttribute(String uri, String local) {
    removeAttributeAt(getIndex(uri, local));
  }
  //  // Private methods  //  /** Returns the node at the specified index. */
  private ListNode getListNodeAt(int i) {
    for (ListNode place = head;
 place != null;
 place = place.next) {
      if (--i == -1) {
        return place;
      }
    }
    return null;
  }
 // getListNodeAt(int):ListNode  /** Returns the first node with the specified uri and local. */
  public ListNode getListNode(String uri, String local) {
    if (uri != null &
& local != null) {
      ListNode place = head;
      while (place != null) {
        if (place.uri != null &
& place.local != null &
& place.uri.equals(uri)            &
& place.local.equals(local)) {
          return place;
        }
        place = place.next;
      }
    }
    return null;
  }
 // getListNode(String,String):ListNode  /** Returns the first node with the specified raw name. */
  private ListNode getListNode(String raw) {
    if (raw != null) {
      for (ListNode place = head;
 place != null;
 place = place.next) {
        if (place.raw != null &
& place.raw.equals(raw)) {
          return place;
        }
      }
    }
    return null;
  }
 // getListNode(String):ListNode  //  // Object methods  //  /** Returns a string representation of this object. */
  public String toString() {
    StringBuffer str = new StringBuffer();
    str.append('[');
    str.append("len=");
    str.append(length);
    str.append(", {
");
    for (ListNode place = head;
 place != null;
 place = place.next) {
      str.append(place.toString());
      if (place.next != null) {
        str.append(", ");
      }
    }
    str.append("}
]");
    return str.toString();
  }
 // toString():String  //  // Classes  //  /**   * An attribute node.   */
  static class ListNode {
    //    // Data    //    /** Attribute uri. */
    public String uri;
    /** Attribute local. */
    public String local;
    /** Attribute raw. */
    public String raw;
    /** Attribute type. */
    public String type;
    /** Attribute value. */
    public String value;
    /** Next node. */
    public ListNode next;
    //    // Constructors    //    /** Constructs a list node. */
    public ListNode(String uri, String local, String raw, String type, String value) {
      this.uri = uri;
      this.local = local;
      this.raw = raw;
      this.type = type;
      this.value = value;
    }
 // (String,String,String,String,String)    //    // Object methods    //    /** Returns string representation of this object. */
    public String toString() {
      return raw != null ? raw : local;
    }
  }
 // class ListNode}
 // class AttributesImpl

Code testé avec le fichier XML Suivant




	Sakoba
	Adams
	Rappel
	Ne m'oubliez pas ce week-end!

A Voir sur le même Sujet:

  • une classe Personne client et serveur udp ajouter personne avec serveur java
  • une gestion efficace locale
  • ResultSet ajouter un enregistrement en java

Leave a Reply

Your email address will not be published. Required fields are marked *