Example usage for org.apache.commons.text StrSubstitutor replace

List of usage examples for org.apache.commons.text StrSubstitutor replace

Introduction

In this page you can find the example usage for org.apache.commons.text StrSubstitutor replace.

Prototype

public String replace(final Object source) 

Source Link

Document

Replaces all the occurrences of variables in the given source object with their matching values from the resolver.

Usage

From source file:org.efaps.esjp.accounting.Account2CaseInfo_Base.java

/**
 * Gets the 4 product./*from  ww w .  j a va2  s . c  om*/
 *
 * @param _parameter Parameter as passed by the eFaps API
 * @param _caseInst the case inst
 * @param _productInstance the product instance
 * @return the 4 product
 * @throws EFapsException on error
 */
protected static Account2CaseInfo get4Product(final Parameter _parameter, final Instance _caseInst,
        final Instance _productInstance) throws EFapsException {
    Account2CaseInfo ret = null;
    // first priority is CategoryProduct then TreeView and then Classification
    final QueryBuilder prodAttrQueryBldr = new QueryBuilder(CIAccounting.CategoryProduct2Product);
    prodAttrQueryBldr.addWhereAttrEqValue(CIAccounting.CategoryProduct2Product.ToLink, _productInstance);

    final QueryBuilder attrQueryBldr = new QueryBuilder(CIAccounting.CategoryProduct);
    attrQueryBldr.addWhereAttrInQuery(CIAccounting.CategoryProduct.ID,
            prodAttrQueryBldr.getAttributeQuery(CIAccounting.CategoryProduct2Product.FromLink));
    attrQueryBldr.addWhereAttrEqValue(CIAccounting.CategoryProduct.PeriodAbstractLink,
            new Period().evaluateCurrentPeriod(_parameter));

    final QueryBuilder queryBldr = new QueryBuilder(CIAccounting.Account2CaseCredit4CategoryProduct);
    queryBldr.addType(CIAccounting.Account2CaseDebit4CategoryProduct);
    queryBldr.addWhereAttrEqValue(CIAccounting.Account2CaseAbstract.ToCaseAbstractLink, _caseInst);
    queryBldr.addWhereAttrInQuery(CIAccounting.Account2CaseAbstract.LinkValue,
            attrQueryBldr.getAttributeQuery(CIAccounting.CategoryProduct.ID));
    ret = Account2CaseInfo_Base.getAccount2CaseInfo(queryBldr);

    if (ret == null) {
        final QueryBuilder tvQueryBldr = new QueryBuilder(CIAccounting.Account2Case4ProductTreeViewAbstract);
        tvQueryBldr.addWhereAttrEqValue(CIAccounting.Account2Case4ProductTreeViewAbstract.ToCaseAbstractLink,
                _caseInst);
        final MultiPrintQuery tvMulti = tvQueryBldr.getPrint();
        final SelectBuilder selNodeInst = SelectBuilder.get()
                .linkto(CIAccounting.Account2Case4ProductTreeViewAbstract.ProductTreeViewLink).instance();
        tvMulti.addSelect(selNodeInst);
        tvMulti.execute();

        int current = Integer.MAX_VALUE;
        Instance treeViewInst = null;
        while (tvMulti.next()) {
            final Instance nodeInst = tvMulti.getSelect(selNodeInst);
            final Set<Instance> products = TreeView.getProductDescendants(_parameter, nodeInst);
            if (products.contains(_productInstance) && products.size() < current) {
                current = products.size();
                treeViewInst = nodeInst;
            }
        }
        if (InstanceUtils.isValid(treeViewInst)) {
            final QueryBuilder ciQueryBldr = new QueryBuilder(
                    CIAccounting.Account2Case4ProductTreeViewAbstract);
            ciQueryBldr.addWhereAttrEqValue(
                    CIAccounting.Account2Case4ProductTreeViewAbstract.ToCaseAbstractLink, _caseInst);
            ciQueryBldr.addWhereAttrEqValue(
                    CIAccounting.Account2Case4ProductTreeViewAbstract.ProductTreeViewLink, treeViewInst);
            ret = Account2CaseInfo_Base.getAccount2CaseInfo(ciQueryBldr);
        }
    }

    if (ret == null) {
        final PrintQuery print = new PrintQuery(_productInstance);
        final SelectBuilder sel = new SelectBuilder().clazz().type();
        print.addSelect(sel);
        print.execute();
        final List<Classification> clazzes = print.getSelect(sel);
        if (clazzes != null) {
            for (final Classification clazz : clazzes) {
                Classification classTmp = clazz;
                while (classTmp != null && ret == null) {
                    final QueryBuilder clazzQueryBldr = new QueryBuilder(
                            CIAccounting.Account2CaseCredit4Classification);
                    clazzQueryBldr.addType(CIAccounting.Account2CaseDebit4Classification);
                    clazzQueryBldr.addWhereAttrEqValue(CIAccounting.Account2CaseAbstract.ToCaseAbstractLink,
                            _caseInst);
                    clazzQueryBldr.addWhereAttrEqValue(CIAccounting.Account2CaseCredit4Classification.LinkValue,
                            classTmp.getId());
                    ret = Account2CaseInfo_Base.getAccount2CaseInfo(clazzQueryBldr);
                    classTmp = classTmp.getParentClassification();
                }
            }
        }
    }

    if (ret != null && !ret.getRemark().isEmpty()) {
        final Instance periodInst = new Period().evaluateCurrentPeriod(_parameter, _caseInst);
        final Properties props = Accounting.getSysConfig().getObjectAttributeValueAsProperties(periodInst);

        if (BooleanUtils.toBoolean(props.getProperty(AccountingSettings.PERIOD_ACTIVATEREMARK4TRANSPOS))) {
            final PrintQuery print = CachedPrintQuery.get4Request(_productInstance);
            print.addAttribute(CIProducts.ProductAbstract.Name, CIProducts.ProductAbstract.Description);
            print.execute();

            final Map<String, String> map = new HashMap<>();
            map.put(Accounting.SubstitutorKeys.PRODUCT_NAME.name(),
                    print.getAttribute(CIProducts.ProductAbstract.Name));
            map.put(Accounting.SubstitutorKeys.PRODUCT_DESCR.name(),
                    print.getAttribute(CIProducts.ProductAbstract.Description));
            final StrSubstitutor sub = new StrSubstitutor(map);
            ret.setRemark(sub.replace(ret.getRemark()));
        }
    }
    return ret;
}

From source file:org.efaps.esjp.accounting.transaction.evaluation.DocumentInfo_Base.java

/**
 * Gets the description.//w ww  .  ja  v a2s  .c o m
 *
 * @param _parameter Parameter as passed by the eFaps API
 * @return the description
 * @throws EFapsException on error
 */
public String getDescription(final Parameter _parameter) throws EFapsException {
    String labelStr = "";
    final Instance caseInstTmp = getCaseInst();
    if (caseInstTmp != null && caseInstTmp.isValid()) {
        final PrintQuery print = new CachedPrintQuery(caseInstTmp, Case.CACHEKEY);
        print.addAttribute(CIAccounting.CaseAbstract.Label);
        print.execute();
        labelStr = print.<String>getAttribute(CIAccounting.CaseAbstract.Label);
    } else {
        labelStr = DBProperties.getProperty(DocumentInfo.class.getName() + "."
                + (InstanceUtils.isValid(getInstance()) ? getInstance().getType().getName() : "Default")
                + ".description");
    }
    final StrSubstitutor sub = new StrSubstitutor(getMap4Substitutor(_parameter));
    return sub.replace(labelStr);
}

From source file:org.efaps.esjp.accounting.transaction.evaluation.IncomingExchangeEvaluation_Base.java

/**
 * Gets the acc two case info for relation.
 *
 * @param _parameter Parameter as passed by the eFaps API
 * @param _doc the doc// ww w . ja  va2s .c  o m
 * @param _infos the infos
 * @throws EFapsException on error
 */
@Override
protected void evalAccount2CaseInfo4Relation(final Parameter _parameter, final DocumentInfo _doc,
        final List<Account2CaseInfo> _infos) throws EFapsException {
    final List<Account2CaseInfo> tempInfos = new ArrayList<>();
    for (final Account2CaseInfo acc2caseInfo : _infos) {
        if (acc2caseInfo.isEvalRelation()) {
            boolean added = false;
            final QueryBuilder swapQueryBldr = new QueryBuilder(CISales.Document2Document4Swap);
            swapQueryBldr.setOr(true);
            swapQueryBldr.addWhereAttrEqValue(CISales.Document2Document4Swap.FromLink, _doc.getInstance());
            swapQueryBldr.addWhereAttrEqValue(CISales.Document2Document4Swap.ToLink, _doc.getInstance());
            final InstanceQuery swapQuery = swapQueryBldr.getQuery();
            final List<Instance> relInst = swapQuery.execute();
            if (!relInst.isEmpty()) {
                final String remark = acc2caseInfo.getRemark();
                acc2caseInfo.setRemark("");
                for (final SwapInfo info : Swap.getSwapInfos(_parameter, _doc.getInstance(), relInst)
                        .values()) {
                    if (acc2caseInfo.isSeparately()) {
                        final Account2CaseInfo acc2caseInfoTmp = Account2CaseInfo
                                .getAccount2CaseInfo(acc2caseInfo.getInstance());
                        tempInfos.add(acc2caseInfoTmp);
                        acc2caseInfoTmp.setAmount(info.getAmount())
                                .setCurrencyInstance(info.getCurrencyInstance()).setDeactCurrencyCheck(true);
                        final Map<String, String> subMap = new HashMap<>();
                        subMap.put(Accounting.RemarkSubstitutorKeys.RELDOC_NAME.name(), info.getDocName());
                        final StrSubstitutor sub = new StrSubstitutor(subMap);
                        acc2caseInfoTmp.setRemark(sub.replace(remark));
                    } else {
                        final Map<String, String> subMap = new HashMap<>();
                        subMap.put(Accounting.RemarkSubstitutorKeys.RELDOC_NAME.name(), info.getDocName());
                        final StrSubstitutor sub = new StrSubstitutor(subMap);
                        final String remarkTmp = sub.replace(remark);
                        if (acc2caseInfo.getRemark().isEmpty()) {
                            acc2caseInfo.setRemark(remarkTmp);
                        } else {
                            acc2caseInfo.setRemark(StringUtils
                                    .join(new String[] { acc2caseInfo.getRemark(), remarkTmp }, ", "));
                        }
                        if (!added) {
                            added = true;
                            tempInfos.add(acc2caseInfo);
                        }
                    }
                }
            } else {
                tempInfos.add(acc2caseInfo);
            }
        } else {
            tempInfos.add(acc2caseInfo);
        }
    }
    _infos.clear();
    _infos.addAll(tempInfos);
}

From source file:org.efaps.esjp.accounting.transaction.evaluation.PaymentDocEvaluation_Base.java

@Override
protected void evalAccount2CaseInfo4Relation(final Parameter _parameter, final DocumentInfo _doc,
        final List<Account2CaseInfo> _infos) throws EFapsException {
    final List<Account2CaseInfo> tempInfos = new ArrayList<>();
    for (final Account2CaseInfo acc2caseInfo : _infos) {
        if (acc2caseInfo.isEvalRelation()) {
            boolean added = false;
            final QueryBuilder queryBldr = new QueryBuilder(CIERP.Document2PaymentDocumentAbstract);
            queryBldr.addWhereAttrEqValue(CIERP.Document2PaymentDocumentAbstract.ToAbstractLink,
                    _doc.getInstance());
            final MultiPrintQuery multi = queryBldr.getPrint();
            final SelectBuilder selDoc = new SelectBuilder()
                    .linkto(CIERP.Document2PaymentDocumentAbstract.FromAbstractLink);
            final SelectBuilder selDocInst = new SelectBuilder(selDoc).instance();
            multi.addSelect(selDocInst);
            multi.addAttribute(CIERP.Document2PaymentDocumentAbstract.Amount,
                    CIERP.Document2PaymentDocumentAbstract.RateCurrencyLink);
            if (multi.execute()) {
                final String remark = acc2caseInfo.getRemark();
                acc2caseInfo.setRemark("");
                while (multi.next()) {
                    final Instance docInst = multi.<Instance>getSelect(selDocInst);
                    final String docName;
                    if (InstanceUtils.isKindOf(docInst, CIERP.DocumentAbstract)) {
                        final PrintQuery print = CachedPrintQuery.get4Request(docInst);
                        print.addAttribute(CISales.DocumentSumAbstract.Name);
                        print.execute();
                        docName = print.getAttribute(CISales.DocumentSumAbstract.Name);
                    } else {
                        docName = "";
                    }//  w  w w .j  ava 2s .com
                    if (acc2caseInfo.isSeparately()) {
                        final Account2CaseInfo acc2caseInfoTmp = Account2CaseInfo
                                .getAccount2CaseInfo(acc2caseInfo.getInstance());
                        tempInfos.add(acc2caseInfoTmp);
                        final CurrencyInst currencyInstObj = CurrencyInst.get(multi
                                .<Long>getAttribute(CIERP.Document2PaymentDocumentAbstract.RateCurrencyLink));
                        acc2caseInfoTmp
                                .setAmount(multi.getAttribute(CIERP.Document2PaymentDocumentAbstract.Amount))
                                .setCurrencyInstance(currencyInstObj.getInstance()).setDeactCurrencyCheck(true);
                        final Map<String, String> subMap = new HashMap<>();
                        subMap.put(Accounting.RemarkSubstitutorKeys.RELDOC_NAME.name(), docName);
                        subMap.put(Accounting.RemarkSubstitutorKeys.RELDOC_TYPE.name(),
                                docInst.getType().getLabel());
                        final StrSubstitutor sub = new StrSubstitutor(subMap);
                        acc2caseInfoTmp.setRemark(sub.replace(remark));
                    } else {
                        final Map<String, String> subMap = new HashMap<>();
                        subMap.put(Accounting.RemarkSubstitutorKeys.RELDOC_NAME.name(), docName);
                        subMap.put(Accounting.RemarkSubstitutorKeys.RELDOC_TYPE.name(),
                                docInst.getType().getLabel());
                        final StrSubstitutor sub = new StrSubstitutor(subMap);
                        final String remarkTmp = sub.replace(remark);
                        if (acc2caseInfo.getRemark().isEmpty()) {
                            acc2caseInfo.setRemark(remarkTmp);
                        } else {
                            acc2caseInfo.setRemark(StringUtils
                                    .join(new String[] { acc2caseInfo.getRemark(), remarkTmp }, ", "));
                        }
                        if (!added) {
                            added = true;
                            tempInfos.add(acc2caseInfo);
                        }
                    }
                }
            } else {
                tempInfos.add(acc2caseInfo);
            }
        } else {
            tempInfos.add(acc2caseInfo);
        }
    }
    _infos.clear();
    _infos.addAll(tempInfos);
}

From source file:org.wso2.carbon.das.jobmanager.core.appCreator.SPSiddhiAppCreator.java

private List<SiddhiQuery> generateQueryList(String queryTemplate, String parentAppName, String queryGroupName,
        int parallelism) {
    List<SiddhiQuery> queries = new ArrayList<>(parallelism);
    for (int i = 0; i < parallelism; i++) {
        Map<String, String> valuesMap = new HashMap<>(1);
        String appName = queryGroupName + "-" + (i + 1);
        valuesMap.put(ResourceManagerConstants.APP_NAME, appName);
        StrSubstitutor substitutor = new StrSubstitutor(valuesMap);
        queries.add(new SiddhiQuery(appName, substitutor.replace(queryTemplate)));
    }/* w  ww . j a v  a2  s .c  o  m*/
    return queries;
}

From source file:org.wso2.carbon.das.jobmanager.core.appCreator.SPSiddhiAppCreator.java

private void updateQueryList(List<SiddhiQuery> queryList, Map<String, String> valuesMap) {
    StrSubstitutor substitutor = new StrSubstitutor(valuesMap);
    for (SiddhiQuery query : queryList) {
        String updatedQuery = substitutor.replace(query.getApp());
        query.setApp(updatedQuery);//from   ww  w.  j  a  v a  2s  . c  om
    }
}

From source file:org.wso2.carbon.das.jobmanager.core.appCreator.SPSiddhiAppCreator.java

private String getUpdatedQuery(String query, Map<String, String> valuesMap) {
    StrSubstitutor substitutor = new StrSubstitutor(valuesMap);
    return substitutor.replace(query);
}

From source file:org.wso2.carbon.sp.jobmanager.core.topology.SiddhiTopologyCreatorImpl.java

/**
 * Passthrough query is created using {@link SiddhiTopologyCreatorConstants#DEFAULT_PASSTROUGH_QUERY_TEMPLATE}
 * and required {@link InputStreamDataHolder} and {@link OutputStreamDataHolder} are assigned to the
 * SiddhiQueryGroup./*from  w  w w. j a  v a 2  s . c  o m*/
 */
private void createPassthroughQuery(SiddhiQueryGroup siddhiQueryGroup,
        InputStreamDataHolder inputStreamDataHolder, String runtimeDefinition) {
    String streamId = inputStreamDataHolder.getStreamName();
    Map<String, String> valuesMap = new HashMap();
    String inputStreamID = SiddhiTopologyCreatorConstants.DEFAULT_INPUTSTREAM_NAME
            + UUID.randomUUID().toString().replaceAll("-", "");
    valuesMap.put(SiddhiTopologyCreatorConstants.INPUTSTREAMID, inputStreamID);
    valuesMap.put(SiddhiTopologyCreatorConstants.OUTPUTSTREAMID, streamId);
    StrSubstitutor substitutor = new StrSubstitutor(valuesMap);
    String passThroughQuery = substitutor
            .replace(SiddhiTopologyCreatorConstants.DEFAULT_PASSTROUGH_QUERY_TEMPLATE);
    siddhiQueryGroup.addQuery(passThroughQuery);
    String inputStreamDefinition = inputStreamDataHolder.getStreamDefinition().replace(streamId, inputStreamID);
    String outputStreamDefinition = "${" + streamId + "} " + runtimeDefinition;
    siddhiQueryGroup.getInputStreams().put(inputStreamID,
            new InputStreamDataHolder(inputStreamID, inputStreamDefinition, EventHolder.STREAM, true,
                    new SubscriptionStrategyDataHolder(SiddhiTopologyCreatorConstants.DEFAULT_PARALLEL,
                            TransportStrategy.ALL, null)));
    siddhiQueryGroup.getOutputStreams().put(streamId,
            new OutputStreamDataHolder(streamId, outputStreamDefinition, EventHolder.STREAM, false));
}