Example usage for org.springframework.util ObjectUtils getDisplayString

List of usage examples for org.springframework.util ObjectUtils getDisplayString

Introduction

In this page you can find the example usage for org.springframework.util ObjectUtils getDisplayString.

Prototype

public static String getDisplayString(@Nullable Object obj) 

Source Link

Document

Return a content-based String representation if obj is not null ; otherwise returns an empty String.

Usage

From source file:org.hdiv.web.servlet.tags.form.SelectedValueComparatorHDIV.java

private static boolean exhaustiveCompare(Object boundValue, Object candidate, PropertyEditor editor,
        Map<PropertyEditor, Object> convertedValueCache) {

    String candidateDisplayString = ValueFormatterHDIV.getDisplayString(candidate, editor, false);
    if (boundValue instanceof LabeledEnum) {
        LabeledEnum labeledEnum = (LabeledEnum) boundValue;
        String enumCodeAsString = ObjectUtils.getDisplayString(labeledEnum.getCode());
        if (enumCodeAsString.equals(candidateDisplayString)) {
            return true;
        }// w  w w . j  a  v a 2s  .  co m
        String enumLabelAsString = ObjectUtils.getDisplayString(labeledEnum.getLabel());
        if (enumLabelAsString.equals(candidateDisplayString)) {
            return true;
        }
    } else if (boundValue.getClass().isEnum()) {
        Enum boundEnum = (Enum) boundValue;
        String enumCodeAsString = ObjectUtils.getDisplayString(boundEnum.name());
        if (enumCodeAsString.equals(candidateDisplayString)) {
            return true;
        }
        String enumLabelAsString = ObjectUtils.getDisplayString(boundEnum.toString());
        if (enumLabelAsString.equals(candidateDisplayString)) {
            return true;
        }
    } else if (ObjectUtils.getDisplayString(boundValue).equals(candidateDisplayString)) {
        return true;
    } else if (editor != null && candidate instanceof String) {
        // Try PE-based comparison (PE should *not* be allowed to escape creating thread)
        String candidateAsString = (String) candidate;
        Object candidateAsValue;
        if (convertedValueCache != null && convertedValueCache.containsKey(editor)) {
            candidateAsValue = convertedValueCache.get(editor);
        } else {
            editor.setAsText(candidateAsString);
            candidateAsValue = editor.getValue();
            if (convertedValueCache != null) {
                convertedValueCache.put(editor, candidateAsValue);
            }
        }
        if (ObjectUtils.nullSafeEquals(boundValue, candidateAsValue)) {
            return true;
        }
    }
    return false;
}

From source file:com.github.totyumengr.minicubes.cluster.BootTimeSeriesMiniCubeController.java

@RequestMapping(value = "/count", method = { RequestMethod.POST, RequestMethod.GET })
public @ResponseBody Long count(@NotBlank @RequestParam String indName,
        @RequestParam(required = false) String filterDims, @NotBlank @RequestParam String... timeSeries)
        throws Throwable {

    LOGGER.info("Try to count {} on {} with filter {}.", indName, ObjectUtils.getDisplayString(timeSeries),
            filterDims);/* w w w  .ja  v  a2  s.  c o m*/
    long timing = System.currentTimeMillis();
    Map<String, List<Integer>> filter = (filterDims == null || "".equals(filterDims)) ? null
            : objectMapper.readValue(filterDims, new TypeReference<Map<String, List<Integer>>>() {
            });
    long count = manager.aggs(timeSeries).count(indName, filter);
    LOGGER.info("Sucess to count {} on {} result is {} using {}ms.", indName, timeSeries, count,
            System.currentTimeMillis() - timing);

    return count;
}

From source file:com.github.totyumengr.minicubes.cluster.BootTimeSeriesMiniCubeController.java

@RequestMapping(value = "/groupcount", method = { RequestMethod.POST, RequestMethod.GET })
public @ResponseBody Map<Integer, Long> groupcount(@NotBlank @RequestParam String indName,
        @RequestParam(required = false) String filterDims, @RequestParam String groupbyDim,
        @NotBlank @RequestParam String... timeSeries) throws Throwable {

    LOGGER.info("Try to count {} on {} with filter {}.", indName, ObjectUtils.getDisplayString(timeSeries),
            filterDims);/*  w w  w  .ja v  a 2 s. c  o  m*/
    long timing = System.currentTimeMillis();
    Map<String, List<Integer>> filter = (filterDims == null || "".equals(filterDims)) ? null
            : objectMapper.readValue(filterDims, new TypeReference<Map<String, List<Integer>>>() {
            });
    Map<Integer, Long> count = manager.aggs(timeSeries).count(indName, groupbyDim, filter);
    LOGGER.info("Sucess to count {} on {} result size is {} using {}ms.", indName, timeSeries, count.size(),
            System.currentTimeMillis() - timing);
    LOGGER.debug("Sucess to count {} on {} result is {}.", indName, timeSeries, count);

    return count;
}

From source file:org.gvnix.datatables.tags.RooColumnTag.java

@Override
protected String getColumnContent() throws JspException {

    // Try to do the same as the roo table.tagx tag to get the value for the
    // column/* w w  w  . j  a  v  a2s .c  o  m*/
    // <c:choose>
    // <c:when test="${columnType eq 'date'}">
    // <spring:escapeBody>
    // <fmt:formatDate value="${item[column]}"
    // pattern="${fn:escapeXml(columnDatePattern)}" var="colTxt" />
    // </spring:escapeBody>
    // </c:when>
    // <c:when test="${columnType eq 'calendar'}">
    // <spring:escapeBody>
    // <fmt:formatDate value="${item[column].time}"
    // pattern="${fn:escapeXml(columnDatePattern)}" var="colTxt"/>
    // </spring:escapeBody>
    // </c:when>
    // <c:otherwise>
    // <c:set var="colTxt">
    // <spring:eval expression="item[column]" htmlEscape="false" />
    // </c:set>
    // </c:otherwise>
    // </c:choose>
    // <c:if test="${columnMaxLength ge 0}">
    // <c:set value="${fn:substring(colTxt, 0, columnMaxLength)}"
    // var="colTxt" />
    // </c:if>
    // <c:out value="${colTxt}" />

    // TODO log problem resolving column content

    if (StringUtils.isBlank(this.property)) {
        return "";
    }
    TableTag parent = (TableTag) getParent();

    ExpressionParser parser = new SpelExpressionParser();
    String unescapedProperty = this.property.replace(SEPARATOR_FIELDS_ESCAPED, SEPARATOR_FIELDS);
    Expression exp = parser.parseExpression(unescapedProperty);
    EvaluationContext context = new StandardEvaluationContext(parent.getCurrentObject());

    Object value = exp.getValue(context);
    String result = "";

    if (value != null) {

        if (Date.class.isAssignableFrom(value.getClass())) {
            result = dateTimePattern.format(value);
        } else if (value instanceof Calendar) {
            result = dateTimePattern.format(((Calendar) value).getTime());
        } else {
            ConversionService conversionService = (ConversionService) helper.getBean(this.pageContext,
                    getConversionServiceId());
            if (conversionService != null && conversionService.canConvert(value.getClass(), String.class)) {
                result = conversionService.convert(value, String.class);
            } else {
                result = ObjectUtils.getDisplayString(value);
            }
            // result = (isHtmlEscape() ? HtmlUtils.htmlEscape(result) :
            // result);
            // result = (this.javaScriptEscape ?
            // JavaScriptUtils.javaScriptEscape(result) : result);
        }

    } else {
        result = super.getColumnContent();
    }
    if (maxLength >= 0 && result.length() > maxLength) {
        result = result.substring(0, maxLength);
    }

    return result;
}

From source file:org.gvnix.datatables.tags.RooTableTag.java

/**
 * Gets Id content//  w w w .ja  va  2s  . c o m
 * 
 * @return
 * @throws JspException
 */
protected String getIdContent() throws JspException {
    ExpressionParser parser = new SpelExpressionParser();
    Expression exp = parser.parseExpression(this.rowIdBase);
    EvaluationContext context = new StandardEvaluationContext(currentObject);

    Object value = exp.getValue(context);
    String result = "";

    if (value == null) {
        // Use AbstractTablaTag standard behavior
        try {
            value = PropertyUtils.getNestedProperty(this.currentObject, this.rowIdBase);

        } catch (IllegalAccessException e) {
            LOGGER.error("Unable to get the value for the given rowIdBase {}", this.rowIdBase);
            throw new JspException(e);
        } catch (InvocationTargetException e) {
            LOGGER.error("Unable to get the value for the given rowIdBase {}", this.rowIdBase);
            throw new JspException(e);
        } catch (NoSuchMethodException e) {
            LOGGER.error("Unable to get the value for the given rowIdBase {}", this.rowIdBase);
            throw new JspException(e);
        }
    }

    if (value != null) {
        // TODO manage exceptions to log it
        ConversionService conversionService = (ConversionService) helper.getBean(this.pageContext,
                getConversionServiceId());
        if (conversionService != null && conversionService.canConvert(value.getClass(), String.class)) {
            result = conversionService.convert(value, String.class);
        } else {
            result = ObjectUtils.getDisplayString(value);
        }
        result = HtmlUtils.htmlEscape(result);
    }

    return result;
}

From source file:com.github.totyumengr.minicubes.cluster.BootTimeSeriesMiniCubeController.java

@RequestMapping(value = "/distinct", method = { RequestMethod.POST, RequestMethod.GET })
public @ResponseBody Map<Integer, Set<Integer>> distinct(@NotBlank @RequestParam String indName,
        @NotBlank @RequestParam(required = false) Boolean isDim,
        @RequestParam(required = false) String filterDims, @RequestParam String groupbyDim,
        @NotBlank @RequestParam String... timeSeries) throws Throwable {

    LOGGER.info("Try to distinct {} on {} with filter {}.", indName, ObjectUtils.getDisplayString(timeSeries),
            filterDims);//from w  w w.  j ava2 s.c  o m
    long timing = System.currentTimeMillis();
    Map<String, List<Integer>> filter = (filterDims == null || "".equals(filterDims)) ? null
            : objectMapper.readValue(filterDims, new TypeReference<Map<String, List<Integer>>>() {
            });
    Map<Integer, RoaringBitmap> distinct = manager.aggs(timeSeries).distinct(indName,
            isDim == null ? true : isDim, groupbyDim, filter);
    LOGGER.info("Sucess to distinct {} on {} result size is {} using {}ms.", indName, timeSeries,
            distinct.size(), System.currentTimeMillis() - timing);
    LOGGER.debug("Sucess to distinct {} on {} result is {}.", indName, timeSeries, distinct);

    Map<Integer, Set<Integer>> result = new HashMap<Integer, Set<Integer>>();
    distinct.forEach(new BiConsumer<Integer, RoaringBitmap>() {
        @Override
        public void accept(Integer t, RoaringBitmap u) {
            result.put(t, Arrays.stream(u.toArray()).collect(HashSet<Integer>::new, Set::add, (l, r) -> {
            }));
        }
    });

    return result;
}

From source file:com.github.totyumengr.minicubes.cluster.TimeSeriesMiniCubeManagerHzImpl.java

@Bean
public HazelcastInstance hazelcastServer() {

    Config hazelcastConfig = new Config("minicubes-cluster");
    hazelcastConfig.setProperty("hazelcast.system.log.enabled", "false");
    hazelcastConfig.setProperty("hazelcast.logging.type", "slf4j");
    hazelcastConfig.setProperty("hazelcast.jmx", "true");
    hazelcastConfig.setProperty("hazelcast.jmx.detailed", "true");
    if (StringUtils.hasText(env.getRequiredProperty("hazelcast.operation.thread.count"))) {
        hazelcastConfig.setProperty("hazelcast.operation.thread.count",
                env.getRequiredProperty("hazelcast.operation.thread.count"));
    }//  www  .  jav a 2 s .co  m

    hazelcastConfig
            .setGroupConfig(new GroupConfig(hzGroupName = env.getRequiredProperty("hazelcast.group.name"),
                    env.getRequiredProperty("hazelcast.group.password")));
    if (StringUtils.hasText(env.getRequiredProperty("hazelcast.mancenter.url"))) {
        hazelcastConfig.setManagementCenterConfig(new ManagementCenterConfig().setEnabled(true)
                .setUrl(env.getRequiredProperty("hazelcast.mancenter.url")));
    }
    String hzMembers;
    JoinConfig joinConfig = new JoinConfig();
    if (!StringUtils.hasText(hzMembers = env.getRequiredProperty("hazelcast.members"))) {
        // Means multiple cast
        joinConfig.setMulticastConfig(new MulticastConfig().setEnabled(true));
    } else {
        joinConfig.setMulticastConfig(new MulticastConfig().setEnabled(false))
                .setTcpIpConfig(new TcpIpConfig().setEnabled(true).addMember(hzMembers));
    }
    hazelcastConfig.setNetworkConfig(new NetworkConfig().setJoin(joinConfig));

    // New ExecutorService
    int hzExecutorSize = -1;
    if ((hzExecutorSize = env.getRequiredProperty("hazelcast.executor.poolsize", Integer.class)) < 0) {
        hzExecutorSize = Runtime.getRuntime().availableProcessors();
        LOGGER.info("Use cpu core count {} setting into executor service", hzExecutorSize);
    }
    hazelcastConfig.addExecutorConfig(new ExecutorConfig(DISTRIBUTED_EXECUTOR, hzExecutorSize)
            .setQueueCapacity(env.getRequiredProperty("hazelcast.executor.queuecapacity", Integer.class)));

    // Add member event listener
    hazelcastConfig.addListenerConfig(new ListenerConfig().setImplementation(new MembershipListener() {

        @Override
        public void memberRemoved(MembershipEvent membershipEvent) {
            // Mean a member leave out of cluster.
            LOGGER.info("A member {} has removed from cluster {}", membershipEvent.getMember(),
                    membershipEvent.getCluster().getClusterTime());

            IMap<String, String> miniCubeManager = hazelcastInstance.getMap(MINICUBE_MANAGER);
            LOGGER.info("Minicube manager status {}", ObjectUtils.getDisplayString(miniCubeManager.entrySet()));

            // FIXME: Schedule to remove relationship after "long disconnect".
        }

        @Override
        public void memberAttributeChanged(MemberAttributeEvent memberAttributeEvent) {
            // Let it empty.
        }

        @Override
        public void memberAdded(MembershipEvent membershipEvent) {
            // Mean a member join into cluster.
            LOGGER.info("A member {} has joined into cluster {}, let it's self to claim a role.",
                    membershipEvent.getMember(), membershipEvent.getCluster().getClusterTime());
        }
    }));

    HazelcastInstance instance = Hazelcast.newHazelcastInstance(hazelcastConfig);
    // Put execute context
    instance.getUserContext().put("this", TimeSeriesMiniCubeManagerHzImpl.this);

    // Handle new member
    LOGGER.info("Handle new member {} came in after 1 minute.", instance.getCluster().getLocalMember());
    // Set member's status to load-pending, this will effect #reassignRole
    instance.getCluster().getLocalMember().setBooleanAttribute("load-pending", true);

    handleNewMember.schedule(new Runnable() {
        @Override
        public void run() {
            handleNewMember(instance, instance.getCluster().getLocalMember());
        }
    }, 60, TimeUnit.SECONDS);

    return instance;
}

From source file:com.github.totyumengr.minicubes.cluster.BootTimeSeriesMiniCubeController.java

@RequestMapping(value = "/distinctcount", method = { RequestMethod.POST, RequestMethod.GET })
public @ResponseBody Map<Integer, Integer> distinctCount(@NotBlank @RequestParam String indName,
        @NotBlank @RequestParam(required = false) Boolean isDim,
        @RequestParam(required = false) String filterDims, @RequestParam String groupbyDim,
        @NotBlank @RequestParam String... timeSeries) throws Throwable {

    LOGGER.info("Try to distinct-count {} on {} with filter {}.", indName,
            ObjectUtils.getDisplayString(timeSeries), filterDims);
    long timing = System.currentTimeMillis();
    Map<String, List<Integer>> filter = (filterDims == null || "".equals(filterDims)) ? null
            : objectMapper.readValue(filterDims, new TypeReference<Map<String, List<Integer>>>() {
            });//from   www  .  j  av a2 s.co  m
    Map<Integer, Integer> distinct = manager.aggs(timeSeries).discnt(indName, isDim == null ? true : isDim,
            groupbyDim, filter);
    LOGGER.info("Sucess to distinct-count {} on {} result size is {} using {}ms.", indName, timeSeries,
            distinct.size(), System.currentTimeMillis() - timing);
    LOGGER.debug("Sucess to distinct-count {} on {} result is {}.", indName, timeSeries, distinct);

    return distinct;
}

From source file:com.github.totyumengr.minicubes.cluster.TimeSeriesMiniCubeManagerHzImpl.java

private void handleNewMember(HazelcastInstance instance, Member member) {

    // Relationship between Member and MiniCube ID
    IMap<String, String> miniCubeManager = instance.getMap(MINICUBE_MANAGER);
    LOGGER.info("Minicube manager status {}", ObjectUtils.getDisplayString(miniCubeManager));

    String key = member.getSocketAddress().toString();
    // FIXME: load-pending status need refactor
    instance.getCluster().getLocalMember().setBooleanAttribute("load-pending", false);

    if (miniCubeManager.containsKey(key) && !miniCubeManager.get(key).startsWith("?")) {
        // Maybe node-restart
        LOGGER.info("A node{} restarted, so we need rebuild cube{}", key, miniCubeManager.get(key));
        // Reassign task.
        reassignRole(miniCubeManager.get(key), miniCubeManager.get(key).split("::")[0]);
    } else {/*from  w  w w. j  a  va 2s.c o  m*/
        // First time join into cluster
        String id = "?" + "::" + hzGroupName + "@" + key;
        miniCubeManager.put(key, id);

        member.setStringAttribute("cubeId", id);
        LOGGER.info("Add {} into cluster {}", id, hzGroupName);
    }
    LOGGER.info("Set load-pending status to false, enable reassign feature on {}", member);
}

From source file:org.jasig.springframework.web.portlet.context.PortletContextLoader.java

protected void configureAndRefreshPortletApplicationContext(ConfigurablePortletApplicationContext pac,
        PortletContext pc) {// www. jav a 2 s. com
    if (ObjectUtils.identityToString(pac).equals(pac.getId())) {
        // The application context id is still set to its original default value
        // -> assign a more useful id based on available information
        String idParam = pc.getInitParameter(CONTEXT_ID_PARAM);
        if (idParam != null) {
            pac.setId(idParam);
        } else {
            // Generate default id...
            pac.setId(ConfigurablePortletApplicationContext.APPLICATION_CONTEXT_ID_PREFIX
                    + ObjectUtils.getDisplayString(pc.getPortletContextName()));
        }
    }

    // Determine parent for root web application context, if any.
    ApplicationContext parent = loadParentContext(pc);

    pac.setParent(parent);
    pac.setPortletContext(pc);
    String initParameter = pc.getInitParameter(CONFIG_LOCATION_PARAM);
    if (initParameter != null) {
        pac.setConfigLocation(initParameter);
    } else {
        try {
            pac.setConfigLocation("/WEB-INF/portletApplicationContext.xml");
        } catch (UnsupportedOperationException e) {
            //Ignore, may get triggered if the context doesn't support config locations
        }
    }
    customizeContext(pc, pac);
    pac.refresh();
}