public String getCustomJSPFolder(final IDataModel model) {
    final String[] retval = new String[1];

    final IFile descriptorFile = getDescriptorFile();

    DOMModelOperation operation =
        new DOMModelReadOperation(descriptorFile) {
          protected IStatus doExecute(IDOMDocument document) {
            retval[0] = readCustomJSPFolder(document, model);
            return Status.OK_STATUS;
          }
        };

    IStatus status = operation.execute();

    if (!status.isOK()) {
      return null;
    }

    return retval[0];
  }
  public IStatus addLanguageProperties(final List<String> languageProperties) {
    final IFile descriptorFile = getDescriptorFile();

    DOMModelOperation operation =
        new DOMModelEditOperation(descriptorFile) {
          protected void createDefaultFile() {
            createDefaultDescriptor(HOOK_DESCRIPTOR_TEMPLATE, getDescriptorVersion());
          }

          protected IStatus doExecute(IDOMDocument document) {
            return doAddLanguageProperties(document, languageProperties);
          }
        };

    IStatus status = operation.execute();

    if (!status.isOK()) {
      return status;
    }

    return status;
  }
  public IStatus setPortalProperties(final IDataModel model, final String propertiesFile) {
    final IFile descriptorFile = getDescriptorFile();

    DOMModelOperation operation =
        new DOMModelEditOperation(descriptorFile) {
          protected void createDefaultFile() {
            createDefaultDescriptor(HOOK_DESCRIPTOR_TEMPLATE, getDescriptorVersion());
          }

          protected IStatus doExecute(IDOMDocument document) {
            return doSetPortalProperties(document, model, propertiesFile);
          }
        };

    IStatus status = operation.execute();

    if (!status.isOK()) {
      return status;
    }

    return status;
  }
  @Override
  protected IStatus doAddNewPortlet(IDOMDocument document, IDataModel model) {
    IStatus status = Status.OK_STATUS;

    status = super.doAddNewPortlet(document, model);

    if (!status.isOK()) {
      return status;
    }

    final Version runtimeVersion = ServerUtil.getRuntimeVersion(project);

    // Runtime version should be equal or greater than 6.2.
    if (CoreUtil.compareVersions(runtimeVersion, ILiferayConstants.V620) >= 0) {
      final IFile descriptorFile = getDescriptorFile();

      if (descriptorFile != null) {
        DOMModelOperation op =
            new DOMModelEditOperation(descriptorFile) {

              @Override
              protected void createDefaultFile() {
                // Getting document from super( descriptorFile );
              }

              @Override
              protected IStatus doExecute(IDOMDocument document) {
                return updateVaadinLiferayPortletXMLTo62(document);
              }
            };

        return op.execute();
      }
    }

    return status;
  }