com.brownsoft.util
Class ParseINI

java.lang.Object
  |
  +--com.brownsoft.util.ParseINI

public class ParseINI
extends java.lang.Object

Esta clase realiza el parseo de un .INI Tiene manejo de secciones El formato del archivo es el siguiente 'Seccion general' -> Es la seccion sin nombre Property1= Value1 Property2= Value2 . . PropertyN= ValueN [Seccion 1] Property1= Value1 Property2= Value2 . . PropertyN= ValueN [Seccion N] Se pueden agregar varios Values en una property con 'addItemToProperty' y se puede obtener la lista de Values a un solo Property con el método estatico parseLine

Version:
1.0
Author:
Gustavo Brown

Field Summary
(package private)  byte[] tempBytes
           
 
Constructor Summary
ParseINI()
           
ParseINI(byte[] inBytes)
           
ParseINI(java.io.InputStream inputStream)
           
ParseINI(java.lang.String filename)
           
ParseINI(java.util.zip.ZipFile zipFile, java.util.zip.ZipEntry entry)
           
 
Method Summary
 boolean addItemToGeneralProperty(java.lang.String prop, java.lang.String item, java.lang.String separator)
          Agrega un item a una General property con muli-items (separados por un 'separador')
 boolean addItemToProperty(java.lang.String section, java.lang.String prop, java.lang.String item, java.lang.String separator)
          Agrega un item a una property con muli-items (separados por un 'separador')
 void finalize()
          Guardo nuevamente el .INI si este se ha modificado
 java.lang.String getAlias(java.lang.String original)
          Devuelve el alias de una seccion
 java.lang.String getGeneralProperty(java.lang.String prop)
          Devuelve la property asociada
 java.lang.String getGeneralProperty(java.lang.String prop, java.lang.String defecto)
          Devuelve la property asociada en la seccion General
 java.lang.String getProperty(java.lang.String section, java.lang.String prop)
          Devuelve la property asociada de la sección especificada
 java.lang.String getProperty(java.lang.String section, java.lang.String prop, java.lang.String defecto)
          Devuelve la property asociada de la seeción especificada
 java.util.Hashtable getSection(java.lang.String section)
          Devuelve una copia del Hashtable conteniendo la seccion especificada
 boolean isAliased(java.lang.String original)
          True si la seccion tiene un alias
 void load(java.io.InputStream iStream)
          Carga de un DataInputStream las properties Las sección se setean con la property 'Name: SectionName' o '[SectionName]' y termina cuando aparece otro inicio de sección Si no se especifica ninguna seccion se toma una por defecto
 boolean need2Save()
          Indica si se ha modificado el INI
static java.util.Vector parseLine(java.lang.String line, java.lang.String separator)
          Separa partes de una lines y las retorna en un Vector
static java.lang.String removeExtraSpaces(java.lang.String line)
          Remueve del string los espacios al comienzo y deja solo un espacio cuando hay varios seguidos
 void removeGeneralProperty(java.lang.String prop)
          Elimina una property General
 boolean removeItemFromGeneralProperty(java.lang.String prop, java.lang.String item, java.lang.String separator)
          Elimina un item a una General Property con muli-items (separados por un 'separador')
 boolean removeItemFromProperty(java.lang.String section, java.lang.String prop, java.lang.String item, java.lang.String separator)
          Elimina un item a una property con muli-items (separados por un 'separador')
 void removeProperty(java.lang.String section, java.lang.String prop)
          Elimina una property de una seccion
 void removeSection(java.lang.String section)
          Elimina una seccion
 boolean renameSection(java.lang.String nuevo, java.lang.String original)
          Renombra una seccion
 void save()
          Guarda el INI en el archivo que se abrio este INI
 void save(java.io.OutputStream oStream)
          Guarda el INI
 java.util.Enumeration sectionElements()
          Devuelve un Enumeration con los Hashtables conteniendo los entries de cada seccion
 boolean sectionExists(java.lang.String section)
          Indica si existe una seccion
 java.util.Enumeration sectionNames()
          Devuelve un Enumeration con los nombres de las secciones
 boolean serializeSection(java.lang.String section, java.io.OutputStream out, boolean sendGeneral)
          Envía una serialización de una seccion al outputStream pasado como parámetro
 boolean setAlias(java.lang.String alias, java.lang.String original)
          Setea un alias a una seccion
 void setAutoSave(boolean autoSave)
          Setea que si se quiere actualizar el archivo del INI automaticamente
 void setGeneralProperty(java.lang.String prop, java.lang.String value)
          Agrega una General property
 void setProperty(java.lang.String section, java.lang.String prop, java.lang.String value)
          Agrega una property a una seccion ( y crea la seccion en caso de que no exista)
 boolean setupGeneralProperty(java.lang.String prop, java.lang.String value)
          Agrega una generalProperty solo si no existía
 java.lang.String unserializeSection(java.io.InputStream in)
          Recibe una serialización de una seccion y la agraga al INI
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tempBytes

byte[] tempBytes
Constructor Detail

ParseINI

public ParseINI()

ParseINI

public ParseINI(java.lang.String filename)
         throws java.io.IOException

ParseINI

public ParseINI(java.io.InputStream inputStream)
         throws java.io.IOException
Parameters:
inputStream - DataInputStream de donde obtener el INI

ParseINI

public ParseINI(byte[] inBytes)
         throws java.io.IOException
Parameters:
inBytes - Array de bytes de donde obtener elINI

ParseINI

public ParseINI(java.util.zip.ZipFile zipFile,
                java.util.zip.ZipEntry entry)
         throws java.io.IOException
Parameters:
zipFile - ZipFile
entry - entry que contiene la informacion del INI
Method Detail

need2Save

public boolean need2Save()
Indica si se ha modificado el INI

Returns:
true si se ha modificado el .INI

finalize

public void finalize()
Guardo nuevamente el .INI si este se ha modificado

Overrides:
finalize in class java.lang.Object

sectionElements

public java.util.Enumeration sectionElements()
Devuelve un Enumeration con los Hashtables conteniendo los entries de cada seccion


sectionNames

public java.util.Enumeration sectionNames()
Devuelve un Enumeration con los nombres de las secciones


getSection

public java.util.Hashtable getSection(java.lang.String section)
Devuelve una copia del Hashtable conteniendo la seccion especificada

Parameters:
section - Nombre de la seccion
Returns:
Hashtable con copia de los entries de esa seccion

sectionExists

public boolean sectionExists(java.lang.String section)
Indica si existe una seccion

Parameters:
section - Nombre de la sección
Returns:
boolean True si la sección existe

removeSection

public void removeSection(java.lang.String section)
Elimina una seccion

Parameters:
section - Nombre de la seccion a eliminar

removeProperty

public void removeProperty(java.lang.String section,
                           java.lang.String prop)
Elimina una property de una seccion

Parameters:
section - Nombre de la seccion
prop - Nombre de la property a eliminar

removeGeneralProperty

public void removeGeneralProperty(java.lang.String prop)
Elimina una property General

Parameters:
prop - Nombre de la property a eliminar

getGeneralProperty

public java.lang.String getGeneralProperty(java.lang.String prop)
Devuelve la property asociada

Parameters:
prop - Nombre de la property a obtener
Returns:
el value de la property o null si no existe es property

getGeneralProperty

public java.lang.String getGeneralProperty(java.lang.String prop,
                                           java.lang.String defecto)
Devuelve la property asociada en la seccion General

Parameters:
prop - Nombre de la property a obtener
defecto - String a retornar si no se encuentra esa entrada
Returns:
el value de la property o el string por defecto si no existe es property

setGeneralProperty

public void setGeneralProperty(java.lang.String prop,
                               java.lang.String value)
Agrega una General property

Parameters:
prop - Nombre de la property
value - Valor de la property

setupGeneralProperty

public boolean setupGeneralProperty(java.lang.String prop,
                                    java.lang.String value)
Agrega una generalProperty solo si no existía

Parameters:
prop - Nombre de la property
value - Valor de la property
Returns:
true si se agrego la GeneralProperty y false si ya existía

setProperty

public void setProperty(java.lang.String section,
                        java.lang.String prop,
                        java.lang.String value)
Agrega una property a una seccion ( y crea la seccion en caso de que no exista)

Parameters:
section - Nombre de la seccion
prop - Nombre de la property
value - Valor de la property

getProperty

public java.lang.String getProperty(java.lang.String section,
                                    java.lang.String prop)
Devuelve la property asociada de la sección especificada

Parameters:
section - Nombre de la sección
prop - Nombre de la property a obtener
Returns:
el value de la property o null si no existe es property

getProperty

public java.lang.String getProperty(java.lang.String section,
                                    java.lang.String prop,
                                    java.lang.String defecto)
Devuelve la property asociada de la seeción especificada

Parameters:
section - Nombre de la sección
prop - Nombre de la property a obtener
defecto - String a retornar si no se encuentra esa entrada
Returns:
el value de la property o el string por defecto si no existe es property

addItemToProperty

public boolean addItemToProperty(java.lang.String section,
                                 java.lang.String prop,
                                 java.lang.String item,
                                 java.lang.String separator)
Agrega un item a una property con muli-items (separados por un 'separador')

Parameters:
section - Nombre de la sección
prop - Nombre de la property a agregar item
item - Item a agregar
separator - separador
Returns:
true si el item se agrego y false si ya existía ese item en la property

addItemToGeneralProperty

public boolean addItemToGeneralProperty(java.lang.String prop,
                                        java.lang.String item,
                                        java.lang.String separator)
Agrega un item a una General property con muli-items (separados por un 'separador')

Parameters:
prop - Nombre de la property a agregar item
item - Item a agregar
separator - separador
Returns:
true si el item se agrego y false si ya existía ese item en la property

removeItemFromProperty

public boolean removeItemFromProperty(java.lang.String section,
                                      java.lang.String prop,
                                      java.lang.String item,
                                      java.lang.String separator)
Elimina un item a una property con muli-items (separados por un 'separador')

Parameters:
section - Nombre de la sección
prop - Nombre de la property a eliminar item
item - Item a eliminar
separator - separador
Returns:
true si el item se elimino y false si no existiá ese item

removeItemFromGeneralProperty

public boolean removeItemFromGeneralProperty(java.lang.String prop,
                                             java.lang.String item,
                                             java.lang.String separator)
Elimina un item a una General Property con muli-items (separados por un 'separador')

Parameters:
prop - Nombre de la property a eliminar item
item - Item a eliminar
separator - separador
Returns:
true si el item se elimino y false si no existiá ese item

setAlias

public boolean setAlias(java.lang.String alias,
                        java.lang.String original)
Setea un alias a una seccion

Parameters:
alias - alias de la seccion
original - nombre original de la seccion
Returns:
true si la operación se realizo con éxito

renameSection

public boolean renameSection(java.lang.String nuevo,
                             java.lang.String original)
Renombra una seccion

Parameters:
nuevo - nuevo nombre de la seccion
original - nombre original de la seccion
Returns:
true si la operación se realizo con éxito

isAliased

public boolean isAliased(java.lang.String original)
True si la seccion tiene un alias

Parameters:
original - Nombre de la seccion
Returns:
True si la seccion tiene un alias

getAlias

public java.lang.String getAlias(java.lang.String original)
Devuelve el alias de una seccion

Parameters:
original - Nombre de la seccion a obtener su alias
Returns:
Alias de la seccion o nombre original si no existe alias

load

public void load(java.io.InputStream iStream)
          throws java.io.IOException
Carga de un DataInputStream las properties Las sección se setean con la property 'Name: SectionName' o '[SectionName]' y termina cuando aparece otro inicio de sección Si no se especifica ninguna seccion se toma una por defecto

java.io.IOException

save

public void save()
          throws java.io.IOException
Guarda el INI en el archivo que se abrio este INI

java.io.IOException

setAutoSave

public void setAutoSave(boolean autoSave)
Setea que si se quiere actualizar el archivo del INI automaticamente

Parameters:
autoSave - True si se quiere actualizar automaticamente el archvo del INI

serializeSection

public boolean serializeSection(java.lang.String section,
                                java.io.OutputStream out,
                                boolean sendGeneral)
                         throws java.io.IOException
Envía una serialización de una seccion al outputStream pasado como parámetro

Parameters:
section - Nombre de la sección a serializar
out - OutputStream por donde mandar la seccion
sendGeneral - True si se desea envíar las General Properties
Returns:
True si la seccion existia
java.io.IOException

unserializeSection

public java.lang.String unserializeSection(java.io.InputStream in)
                                    throws java.io.IOException,
                                           java.lang.ClassNotFoundException
Recibe una serialización de una seccion y la agraga al INI

Parameters:
in - InputStream de donde obtener la sección
Returns:
section Nombre de la seccion recibida
java.io.IOException
java.lang.ClassNotFoundException

save

public void save(java.io.OutputStream oStream)
          throws java.io.IOException
Guarda el INI

java.io.IOException

removeExtraSpaces

public static java.lang.String removeExtraSpaces(java.lang.String line)
Remueve del string los espacios al comienzo y deja solo un espacio cuando hay varios seguidos


parseLine

public static java.util.Vector parseLine(java.lang.String line,
                                         java.lang.String separator)
Separa partes de una lines y las retorna en un Vector

Parameters:
line - linea a separar
separator - String conteniendo el separador de partes
Returns:
Vector de Strings conteniendo las partes separadas