Example #1
0
  @Override
  public TagType createTagType(TagTypeCreateRequest request) {
    // Validate and trim the request parameters.
    validateTagTypeCreateRequest(request);

    // Validate the tag type does not already exist in the database.
    TagTypeEntity tagTypeEntity = tagTypeDao.getTagTypeByKey(request.getTagTypeKey());
    if (tagTypeEntity != null) {
      throw new AlreadyExistsException(
          String.format(
              "Unable to create tag type with code \"%s\" because it already exists.",
              request.getTagTypeKey().getTagTypeCode()));
    }

    // Validate the display name does not already exist in the database
    tagTypeDaoHelper.assertTagTypeDisplayNameDoesNotExist(request.getDisplayName());

    // Create and persist a new tag type entity from the request information.
    tagTypeEntity =
        createTagTypeEntity(
            request.getTagTypeKey().getTagTypeCode(),
            request.getDisplayName(),
            request.getTagTypeOrder());

    // Create and return the tag type object from the persisted entity.
    return createTagTypeFromEntity(tagTypeEntity);
  }
Example #2
0
  /**
   * Update and persist the tag type per specified update request.
   *
   * @param tagTypeEntity the tag type entity
   * @param request the tag type update request
   */
  private void updateTagTypeEntity(TagTypeEntity tagTypeEntity, TagTypeUpdateRequest request) {
    tagTypeEntity.setDisplayName(request.getDisplayName());
    tagTypeEntity.setOrderNumber(request.getTagTypeOrder());

    // Persist and refresh the entity.
    tagTypeDao.saveAndRefresh(tagTypeEntity);
  }
Example #3
0
 /**
  * Creates and persists a new tag type entity.
  *
  * @param tagTypeCode the tag type code
  * @param displayName the display name
  * @param tagTypeOrder the tag type order number
  * @return the newly created tag type entity
  */
 private TagTypeEntity createTagTypeEntity(
     String tagTypeCode, String displayName, int tagTypeOrder) {
   TagTypeEntity tagTypeEntity = new TagTypeEntity();
   tagTypeEntity.setCode(tagTypeCode);
   tagTypeEntity.setDisplayName(displayName);
   tagTypeEntity.setOrderNumber(tagTypeOrder);
   return tagTypeDao.saveAndRefresh(tagTypeEntity);
 }
Example #4
0
  @Override
  public TagType deleteTagType(TagTypeKey tagTypeKey) {
    // Perform validation and trim.
    tagTypeHelper.validateTagTypeKey(tagTypeKey);

    // Retrieve and ensure that a tag type already exists with the specified key.
    TagTypeEntity tagTypeEntity = tagTypeDaoHelper.getTagTypeEntity(tagTypeKey);

    // Delete the tag type.
    tagTypeDao.delete(tagTypeEntity);

    // Create and return the tag type object from the deleted entity.
    return createTagTypeFromEntity(tagTypeEntity);
  }
Example #5
0
  @Override
  public TagTypeSearchResponse searchTagTypes(TagTypeSearchRequest request, Set<String> fields) {
    // Validate the request.
    Assert.notNull(request, "A tag type search request must be specified.");

    // Validate and trim the search response fields.
    validateSearchResponseFields(fields);

    // Retrieve the tag types.
    List<TagTypeEntity> tagTypeEntities = tagTypeDao.getTagTypes();

    // Build the list of tag types.
    List<TagType> tagTypes = new ArrayList<>();
    for (TagTypeEntity tagTypeEntity : tagTypeEntities) {
      tagTypes.add(
          createTagTypeFromEntity(
              tagTypeEntity,
              fields.contains(DISPLAY_NAME_FIELD),
              fields.contains(TAG_TYPE_ORDER_FIELD)));
    }

    // Build and return the search response.
    return new TagTypeSearchResponse(tagTypes);
  }
Example #6
0
 @Override
 public TagTypeKeys getTagTypes() {
   return new TagTypeKeys(tagTypeDao.getTagTypeKeys());
 }