Example usage for org.apache.commons.lang StringUtils substring

List of usage examples for org.apache.commons.lang StringUtils substring

Introduction

In this page you can find the example usage for org.apache.commons.lang StringUtils substring.

Prototype

public static String substring(String str, int start, int end) 

Source Link

Document

Gets a substring from the specified String avoiding exceptions.

Usage

From source file:org.nekorp.workflow.backend.memcache.ClienteDAOCache.java

void notifyUpdate(Cliente cliente) {
    if (cliente.getId() != null) {
        //log.info("borrando cliente del cache");
        AsyncMemcacheService asyncCache = MemcacheServiceFactory.getAsyncMemcacheService();
        asyncCache.setErrorHandler(ErrorHandlers.getConsistentLogAndContinue(Level.INFO));
        ClienteCacheKey key = new ClienteCacheKey();
        key.setId(cliente.getId());//  w  ww . j a va 2  s .c  o m
        asyncCache.delete(key);
        // se quita del cache el resultado de la busqueda por nombre que comienze con esta letra
        //TODO hacer configurable el numero de letras minimo para comenzar la busqueda
        String filtroNombre = StringUtils.substring(cliente.getNombreEstandar(), 0, 1);
        FiltroClienteCacheKey keyTodos = new FiltroClienteCacheKey();
        keyTodos.setFiltro(filtroNombre);
        asyncCache.delete(keyTodos);
    }
}

From source file:org.nekorp.workflow.backend.memcache.ClienteDAOCache.java

public Object notifyQueryTodos(ProceedingJoinPoint pjp, FiltroCliente filtro, PaginationData<Long> pagination)
        throws Throwable {
    if (!StringUtils.isEmpty(filtro.getFiltroNombre())) {
        //esto es trampa, ya que si se permiten busquedas de diferentes longitudes no se van a poner 
        //en el cache resultados de diferente longitud
        pagination.setMaxResults(0);//from  w w w .  ja  va  2 s .c om
        String filtroOriginal = filtro.getFiltroNombre();
        //se filtrara todo con una sola letra realmente.
        //TODO hacer configurable el numero de letras minimo para comenzar la busqueda
        String nuevoFiltro = StringUtils.substring(filtroOriginal, 0, 1);
        MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService();
        syncCache.setErrorHandler(ErrorHandlers.getConsistentLogAndContinue(Level.INFO));
        FiltroClienteCacheKey key = new FiltroClienteCacheKey();
        key.setFiltro(nuevoFiltro);
        //log.info("sacando lista de clientes del cache");
        @SuppressWarnings("unchecked")
        List<Cliente> value = (List<Cliente>) syncCache.get(key);
        if (value == null) {
            value = new LinkedList<Cliente>();
            //log.info("la lista de clientes no estaba en el cache dejando hacer la busqueda al dao");
            filtro.setFiltroNombre(nuevoFiltro);
            @SuppressWarnings("unchecked")
            List<Cliente> data = (List<Cliente>) pjp.proceed();
            for (Cliente x : data) {
                value.add(x);
            }
            syncCache.put(key, value);
            filtro.setFiltroNombre(filtroOriginal);
        }
        List<Cliente> respuesta = value;
        //En caso de que el cliente quiera filtrar por mas de una letra
        //TODO hacer configurable el numero de letras minimo para comenzar la busqueda
        if (filtroOriginal.length() > 1) {
            respuesta = new LinkedList<Cliente>();
            for (Cliente x : value) {
                if (StringUtils.startsWith(x.getNombreEstandar(), filtroOriginal)) {
                    respuesta.add(x);
                }
            }
        }
        return respuesta;
    } else {
        return pjp.proceed();
    }
}

From source file:org.nekorp.workflow.desktop.view.binding.MonedaBindableJTextField.java

@Override
public Object getModelValue() {
    try {//from w w  w  .j  a v  a  2s  .c om
        return MonedaVB.valueOf(this.getText());
    } catch (IllegalArgumentException e) {
        String value = this.getText();
        int indexPoint = StringUtils.indexOf(value, ".");
        if (indexPoint == -1) {
            throw e;
        } else {
            if (indexPoint + 1 == value.length()) {
                value = StringUtils.remove(value, '.');
            } else {
                value = StringUtils.substring(value, 0, indexPoint + 3);
            }
        }
        return MonedaVB.valueOf(value);
    }
}

From source file:org.nekorp.workflow.desktop.view.model.inventario.damage.DamageDetailsVB.java

@Override
public String toString() {
    if (caracteristica.compareTo("Dao estructural") == 0) {
        return "Estructural:" + StringUtils.substring(categoria, 0, 3);
    }//  w w w  . j  a  v  a2s  . c  o  m
    return caracteristica + ":" + StringUtils.substring(categoria, 0, 3);
}

From source file:org.nekorp.workflow.desktop.view.resource.imp.DocumentSizeValidator.java

@Override
public void insertString(FilterBypass fb, int offs, String str, AttributeSet a) throws BadLocationException {
    int sizeActual = fb.getDocument().getLength();
    int espacio = maxSize - sizeActual;
    String dato = str;//from  ww  w. ja v a  2s. c  om
    if (espacio <= 0) {
        return;
    }
    if (dato.length() > espacio) {
        dato = StringUtils.substring(str, 0, espacio);
    }
    super.insertString(fb, offs, dato, a);
}

From source file:org.nekorp.workflow.desktop.view.resource.imp.DocumentSizeValidator.java

@Override
public void replace(FilterBypass fb, int offs, int length, String str, AttributeSet a)
        throws BadLocationException {
    int sizeActual = fb.getDocument().getLength() - length;//ya sin el espacio que se remplaza
    int espacio = maxSize - sizeActual;
    String dato = str;//from   w  w w.ja va 2 s  . c o  m
    if (espacio <= 0) {
        return;
    }
    if (dato.length() > espacio) {
        dato = StringUtils.substring(str, 0, espacio);
    }
    super.replace(fb, offs, length, dato, a);
}

From source file:org.objectstyle.cayenne.map.ObjAttribute.java

/**
 * Returns the dbAttributeName./* w  w w .j  a  v a 2  s.  co  m*/
 * @return String
 */
public String getDbAttributeName() {
    if (dbAttributePath == null)
        return null;
    int lastPartStart = dbAttributePath.lastIndexOf('.');
    String lastPart = StringUtils.substring(dbAttributePath, lastPartStart + 1, dbAttributePath.length());
    return lastPart;
}

From source file:org.objectstyle.wolips.ruleeditor.model.RightHandSide.java

private Object parseValueString(String value) {
    value = StringUtils.remove(value, "\"");

    // When its an Array
    if (value.startsWith("(")) {
        value = StringUtils.substring(value, 1, value.length() - 1);

        String[] arrayComponents = Pattern.compile(",").split(value);

        ArrayList<Object> array = new ArrayList<Object>();

        for (String expression : arrayComponents) {
            expression = expression.trim();

            if ("".equals(expression)) {
                continue;
            }/*w  w w .j av  a 2  s  . co  m*/

            array.add(parseValueString(expression));
        }

        return array;
    }
    // When its a Dictionary
    else if (value.startsWith("{")) {
        Map<String, Object> dictionary = new HashMap<String, Object>();

        value = StringUtils.substring(value, 1, value.lastIndexOf(";"));

        String[] dictionaryComponents = Pattern.compile(";").split(value);

        for (String expression : dictionaryComponents) {
            String key = expression.substring(0, expression.indexOf("=")).trim();

            Object dictionaryValue = parseValueString(
                    expression.substring(expression.indexOf("=") + 1, expression.length()).trim());

            dictionary.put(key, dictionaryValue);
        }
        return dictionary;
    }

    // So its a String
    return value;
}

From source file:org.onehippo.forge.content.exim.core.util.ContentPathUtils.java

/**
 * Splits the given {@code contentLocation} to an array which consists of a folder path and the node name.
 * @param contentLocation content node path
 * @return an array which consists of a folder path and the node name
 *///from  w  ww.  jav a 2s  . c o  m
public static String[] splitToFolderPathAndName(final String contentLocation) {
    String[] folderPathAndName = new String[] { "", "" };
    int offset = StringUtils.lastIndexOf(contentLocation, '/');
    folderPathAndName[0] = StringUtils.substring(contentLocation, 0, offset);
    folderPathAndName[1] = StringUtils.substring(contentLocation, offset + 1);
    return folderPathAndName;
}

From source file:org.onosproject.influxdbmetrics.DefaultInfluxDbMetricsRetriever.java

/**
 * Returns node id from full name.//from w w  w.  ja  v a2  s.  c om
 * The elements in full name is split by using '.';
 * We assume that the node id always comes before the last three '.'
 *
 * @param fullName full name
 * @return node id
 */
private String getNodeId(String fullName) {
    int index = StringUtils.lastOrdinalIndexOf(fullName, METRIC_DELIMITER, NUB_OF_DELIMITER);
    if (index != -1) {
        return StringUtils.substring(fullName, 0, index);
    } else {
        log.warn("Database {} contains malformed node id.", database);
        return null;
    }
}