Example usage for org.apache.commons.lang3 EnumUtils isValidEnum

List of usage examples for org.apache.commons.lang3 EnumUtils isValidEnum

Introduction

In this page you can find the example usage for org.apache.commons.lang3 EnumUtils isValidEnum.

Prototype

public static <E extends Enum<E>> boolean isValidEnum(final Class<E> enumClass, final String enumName) 

Source Link

Document

Checks if the specified name is a valid enum for the class.

This method differs from Enum#valueOf in that checks if the name is a valid enum without needing to catch the exception.

Usage

From source file:org.hawaiiframework.sample.web.HelloController.java

@Get(path = "/greet", produces = APPLICATION_JSON_VALUE)
public ResponseEntity<JSONObject> greet(@RequestParam(required = false) String name,
        @RequestParam(required = false) String language) {

    logger.info("greet called with name: {}, language: {}", name, language);

    // Validate language
    if (StringUtils.isNotBlank(language)) {
        language = StringUtils.upperCase(language);
        if (!EnumUtils.isValidEnum(Language.class, language)) {
            throw new ValidationException(new ValidationError("language", "invalid"));
        }/*from   w  w  w. j  av  a  2  s .  co m*/
    }

    // Create resource to be returned to client
    JSONObject resource = new JSONObject();
    resource.put("timestamp", hawaiiTime.zonedDateTime());
    resource.put("greeting", helloService.greet(name, EnumUtils.getEnum(Language.class, language)));

    return ResponseEntity.ok().body(resource);
}

From source file:org.nuxeo.ecm.restapi.server.jaxrs.search.QueryExecutor.java

protected Properties getNamedParameters(MultivaluedMap<String, String> queryParams) {
    Properties namedParameters = new Properties();
    for (String namedParameterKey : queryParams.keySet()) {
        if (!EnumUtils.isValidEnum(QueryParams.class, namedParameterKey)) {
            String value = queryParams.getFirst(namedParameterKey);
            namedParameters.put(namedParameterKey, handleNamedParamVars(value));
        }/*from w w  w  .j  a v a 2 s .  co m*/
    }
    return namedParameters;
}

From source file:org.nuxeo.ecm.restapi.server.jaxrs.search.QueryExecutor.java

protected Properties getNamedParameters(Map<String, String> queryParams) {
    Properties namedParameters = new Properties();
    for (String namedParameterKey : queryParams.keySet()) {
        if (!EnumUtils.isValidEnum(QueryParams.class, namedParameterKey)) {
            String value = queryParams.get(namedParameterKey);
            namedParameters.put(namedParameterKey, handleNamedParamVars(value));
        }/*from w w w. j  a v  a2 s. c o m*/
    }
    return namedParameters;
}

From source file:org.nuxeo.ecm.restapi.server.jaxrs.search.QueryExecutor.java

protected DocumentModelList queryByLang(String queryLanguage, MultivaluedMap<String, String> queryParams)
        throws RestOperationException {
    if (queryLanguage == null || !EnumUtils.isValidEnum(LangParams.class, queryLanguage)) {
        throw new RestOperationException("invalid query language", HttpServletResponse.SC_BAD_REQUEST);
    }//w  w  w .j av  a2  s  .c  o m

    String query = getQuery(queryParams);
    Long pageSize = getPageSize(queryParams);
    Long currentPageIndex = getCurrentPageIndex(queryParams);
    Long maxResults = getMaxResults(queryParams);
    Properties namedParameters = getNamedParameters(queryParams);
    Object[] parameters = getParameters(queryParams);
    List<SortInfo> sortInfo = getSortInfo(queryParams);
    Map<String, Serializable> props = getProperties();

    DocumentModel searchDocumentModel = getSearchDocumentModel(ctx.getCoreSession(), pageProviderService, null,
            namedParameters);

    return queryByLang(query, pageSize, currentPageIndex, maxResults, sortInfo, parameters, props,
            searchDocumentModel);
}

From source file:org.opennms.web.rest.v1.AlarmRestService.java

/**
 * <p>/*w w w.ja  va  2  s. c  o m*/
 * updateAlarm
 * </p>
 * 
 * @param alarmId
 *            a {@link java.lang.String} object.
 * @param ack
 *            a {@link java.lang.Boolean} object.
 */
@PUT
@Path("{alarmId}")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Transactional
public Response updateAlarm(@Context final SecurityContext securityContext,
        @PathParam("alarmId") final Integer alarmId, final MultivaluedMapImpl formProperties) {
    writeLock();

    try {
        boolean isProcessAck = true;
        if (alarmId == null) {
            return getBadRequestResponse("Unable to determine alarm ID to update based on query path.");
        }

        final String ackValue = formProperties.getFirst("ack");
        formProperties.remove("ack");
        final String escalateValue = formProperties.getFirst("escalate");
        formProperties.remove("escalate");
        final String clearValue = formProperties.getFirst("clear");
        formProperties.remove("clear");
        final String ackUserValue = formProperties.getFirst("ackUser");
        formProperties.remove("ackUser");
        final String ticketIdValue = formProperties.getFirst("ticketId");
        formProperties.remove("ticketId");
        final String ticketStateValue = formProperties.getFirst("ticketState");
        formProperties.remove("ticketState");
        final OnmsAlarm alarm = m_alarmDao.get(alarmId);
        if (alarm == null) {
            return getBadRequestResponse("Unable to locate alarm with ID '" + alarmId + "'");
        }

        final String ackUser = ackUserValue == null ? securityContext.getUserPrincipal().getName()
                : ackUserValue;
        assertUserEditCredentials(securityContext, ackUser);

        final OnmsAcknowledgment acknowledgement = new OnmsAcknowledgment(alarm, ackUser);
        acknowledgement.setAckAction(AckAction.UNSPECIFIED);
        if (ackValue != null) {
            if (Boolean.parseBoolean(ackValue)) {
                acknowledgement.setAckAction(AckAction.ACKNOWLEDGE);
            } else {
                acknowledgement.setAckAction(AckAction.UNACKNOWLEDGE);
            }
        } else if (escalateValue != null) {
            if (Boolean.parseBoolean(escalateValue)) {
                acknowledgement.setAckAction(AckAction.ESCALATE);
            }
        } else if (clearValue != null) {
            if (Boolean.parseBoolean(clearValue)) {
                acknowledgement.setAckAction(AckAction.CLEAR);
            }
        } else if (StringUtils.isNotBlank(ticketIdValue)) {
            isProcessAck = false;
            alarm.setTTicketId(ticketIdValue);
        } else if (EnumUtils.isValidEnum(TroubleTicketState.class, ticketStateValue)) {
            isProcessAck = false;
            alarm.setTTicketState(TroubleTicketState.valueOf(ticketStateValue));
        } else {
            return getBadRequestResponse(
                    "Must supply one of the 'ack', 'escalate', or 'clear' parameters, set to either 'true' or 'false'.");
        }
        if (isProcessAck) {
            m_ackDao.processAck(acknowledgement);
        } else {
            m_alarmDao.saveOrUpdate(alarm);
        }
        return Response.noContent().build();
    } finally {
        writeUnlock();
    }
}

From source file:org.silverpeas.mobile.server.services.ServiceNavigationImpl.java

private boolean isSupportedApp(ComponentInstLight app) {
    if (EnumUtils.isValidEnum(Apps.class, app.getName())) {
        return true;
    }/*from   ww w.j av  a 2  s . com*/
    return isWorkflowApp(app);
}

From source file:org.structr.web.maintenance.DirectFileImportCommand.java

@Override
public void execute(final Map<String, Object> attributes) throws FrameworkException {

    indexer = StructrApp.getInstance(securityContext).getFulltextIndexer();

    final String sourcePath = getParameterValueAsString(attributes, "source", null);
    final String modeString = getParameterValueAsString(attributes, "mode", Mode.COPY.name()).toUpperCase();
    final String existingString = getParameterValueAsString(attributes, "existing", Existing.SKIP.name())
            .toUpperCase();//from  w  w  w.  j  a v  a  2  s .  co m
    final boolean doIndex = Boolean
            .parseBoolean(getParameterValueAsString(attributes, "index", Boolean.TRUE.toString()));

    if (StringUtils.isBlank(sourcePath)) {
        throw new FrameworkException(422,
                "Please provide 'source' attribute for deployment source directory path.");
    }

    if (!EnumUtils.isValidEnum(Mode.class, modeString)) {
        throw new FrameworkException(422, "Unknown value for 'mode' attribute. Valid values are: copy, move");
    }

    if (!EnumUtils.isValidEnum(Existing.class, existingString)) {
        throw new FrameworkException(422,
                "Unknown value for 'existing' attribute. Valid values are: skip, overwrite, rename");
    }

    // use actual enums
    final Existing existing = Existing.valueOf(existingString);
    final Mode mode = Mode.valueOf(modeString);

    final List<Path> paths = new ArrayList<>();

    if (sourcePath.contains(PathHelper.PATH_SEP)) {

        final String folderPart = PathHelper.getFolderPath(sourcePath);
        final String namePart = PathHelper.getName(sourcePath);

        if (StringUtils.isNotBlank(folderPart)) {

            final Path source = Paths.get(folderPart);
            if (!Files.exists(source)) {

                throw new FrameworkException(422, "Source path " + sourcePath + " does not exist.");
            }

            if (!Files.isDirectory(source)) {

                throw new FrameworkException(422, "Source path " + sourcePath + " is not a directory.");
            }

            try {

                try (final DirectoryStream<Path> stream = Files.newDirectoryStream(source, namePart)) {

                    for (final Path entry : stream) {
                        paths.add(entry);
                    }

                } catch (final DirectoryIteratorException ex) {
                    throw ex.getCause();
                }

            } catch (final IOException ioex) {
                throw new FrameworkException(422, "Unable to parse source path " + sourcePath + ".");
            }
        }

    } else {

        // Relative path
        final Path source = Paths.get(Settings.BasePath.getValue()).resolve(sourcePath);
        if (!Files.exists(source)) {

            throw new FrameworkException(422, "Source path " + sourcePath + " does not exist.");
        }

        paths.add(source);

    }

    final SecurityContext ctx = SecurityContext.getSuperUserInstance();
    final App app = StructrApp.getInstance(ctx);
    String targetPath = getParameterValueAsString(attributes, "target", "/");
    Folder targetFolder = null;

    ctx.setDoTransactionNotifications(false);

    if (StringUtils.isNotBlank(targetPath) && !("/".equals(targetPath))) {

        try (final Tx tx = app.tx()) {

            targetFolder = app.nodeQuery(Folder.class).and(StructrApp.key(Folder.class, "path"), targetPath)
                    .getFirst();
            if (targetFolder == null) {

                throw new FrameworkException(422, "Target path " + targetPath + " does not exist.");
            }

            tx.success();
        }
    }

    String msg = "Starting direct file import from source directory " + sourcePath + " into target path "
            + targetPath;
    logger.info(msg);
    publishProgressMessage(msg);

    paths.forEach((path) -> {

        try {

            final String newTargetPath;

            // If path is a directory, create it and use it as the new target folder
            if (Files.isDirectory(path)) {

                Path parentPath = path.getParent();
                if (parentPath == null) {
                    parentPath = path;
                }

                createFileOrFolder(ctx, app, parentPath, path,
                        Files.readAttributes(path, BasicFileAttributes.class), sourcePath, targetPath, mode,
                        existing, doIndex);

                newTargetPath = targetPath + PathHelper.PATH_SEP
                        + PathHelper.clean(path.getFileName().toString());

            } else {

                newTargetPath = targetPath;
            }

            Files.walkFileTree(path, new FileVisitor<Path>() {

                @Override
                public FileVisitResult preVisitDirectory(final Path dir, final BasicFileAttributes attrs)
                        throws IOException {
                    return FileVisitResult.CONTINUE;
                }

                @Override
                public FileVisitResult visitFile(final Path file, final BasicFileAttributes attrs)
                        throws IOException {
                    return createFileOrFolder(ctx, app, path, file, attrs, sourcePath, newTargetPath, mode,
                            existing, doIndex);
                }

                @Override
                public FileVisitResult visitFileFailed(final Path file, final IOException exc)
                        throws IOException {
                    return FileVisitResult.CONTINUE;
                }

                @Override
                public FileVisitResult postVisitDirectory(final Path dir, final IOException exc)
                        throws IOException {
                    return FileVisitResult.CONTINUE;
                }
            });

        } catch (final IOException ex) {
            logger.debug("Mode: " + modeString + ", path: " + sourcePath, ex);
        }
    });

    msg = "Finished direct file import from source directory " + sourcePath + ". Imported " + folderCount
            + " folders and " + fileCount + " files.";
    logger.info(msg);

    publishProgressMessage(msg);
}

From source file:tasly.greathealth.oms.order.facades.impl.DefaultPendingOrderFacade.java

/**
 * put this order into queue according to different event type
 *
 * @param pendingOrder//from w  w  w .  j a  va 2 s.  com
 * @author vincent.yin
 */
public void restorePendingOrders(final PendingOrder pendingOrder) {
    final Message message = new Message();
    final String eventType = pendingOrder.getEventType().toString();
    if (EnumUtils.isValidEnum(EventType.class, eventType) == false) {
        LOG.error("Not a valid event type for pending order." + eventType);
        return;
    }
    final Map<String, Object> rawMap = new HashMap<String, Object>();
    final Map<String, Object> contentMap = new HashMap<String, Object>();
    contentMap.put("tid", pendingOrder.getTid());
    contentMap.put("oid", pendingOrder.getOid());
    contentMap.put("type", eventType);

    if (EventType.REFUNDCREATE.equals(pendingOrder.getEventType())
            || EventType.REFUNDSUCCESS.toString().equalsIgnoreCase(eventType)
            || EventType.REFUNDCLOSE.toString().equalsIgnoreCase(eventType)) {
        contentMap.put("refund_fee", pendingOrder.getRefundFee());
    }

    final String contentMapJson = new JSONSerializer().deepSerialize(contentMap);
    rawMap.put("content", contentMapJson);
    rawMap.put("time", String.valueOf(new Date()));
    setRawMsg(message, rawMap);

    LOG.info("------> " + message.getRaw());
    message.setUserId(911757567L);
    message.setTopic(eventType);

    final OrderCommand command;

    if (pendingOrder.getInnerSource().toString().equals(TMALL_INNER_OTC)) {

        command = OrderCommandFactory.createTmallOrderCommand(EventType.valueOf(eventType),
                omsOrderRetrieverService, message, InnerSource.OTC);
    } else {
        command = OrderCommandFactory.createTmallOrderCommand(EventType.valueOf(eventType),
                omsOrderRetrieverService, message, InnerSource.JSC);

    }
    command.execute();
}

From source file:tasly.greathealth.oms.web.orderproducer.rest.resources.TaslyOrderProducerConfigResource.java

@GET
@Path("orderconsumer/status/{eventType}")
public @ResponseBody String getOrderConsumerStatus(@PathParam("eventType") final String eventType) {
    LOG.info("Look up order consumer status." + eventType);
    if ("all".equalsIgnoreCase(eventType)) {
        return new JSONSerializer().deepSerialize(OrderCommandsStorage.getInstance().getAllConsumerStatus());
    } else if (EnumUtils.isValidEnum(EventType.class, eventType) == false) {
        return "Not support event type " + eventType;
    } else {//  ww  w  .  j a  v  a  2s . c  o  m
        return new JSONSerializer()
                .deepSerialize(OrderCommandsStorage.getInstance().getSingleConsumerStatus(eventType));
    }
}

From source file:tasly.greathealth.oms.web.orderproducer.rest.resources.TaslyOrderProducerConfigResource.java

@GET
@Path("orderconsumer/start/{sourceType}/{eventType}")
public @ResponseBody String startOrderConsumer(@PathParam("sourceType") final String st,
        @PathParam("eventType") final String eventType) {
    LOG.info("Start order consumer." + eventType);
    if ("all".equalsIgnoreCase(eventType)) {
        OrderCommandsStorage.getInstance().startAllConsumer(st);
        return new JSONSerializer().deepSerialize(OrderCommandsStorage.getInstance().getAllConsumerStatus());
    } else if (EnumUtils.isValidEnum(EventType.class, eventType) == false) {
        return "Not support event type " + eventType;
    } else {//w  w  w.j av  a2s  .c o m
        OrderCommandsStorage.getInstance().startSingleConsumer(st, eventType);
        return new JSONSerializer().deepSerialize(OrderCommandsStorage.getInstance().getAllConsumerStatus());
    }
}