Example usage for com.liferay.portal.kernel.xml Element remove

List of usage examples for com.liferay.portal.kernel.xml Element remove

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.xml Element remove.

Prototype

public boolean remove(Text text);

Source Link

Usage

From source file:com.liferay.asset.publisher.web.upgrade.v1_0_0.UpgradePortletPreferences.java

License:Open Source License

protected void upgradeUuids(String[] assetEntryXmls) throws Exception {
    for (int i = 0; i < assetEntryXmls.length; i++) {
        String assetEntry = assetEntryXmls[i];

        Document document = _saxReader.read(assetEntry);

        Element rootElement = document.getRootElement();

        Element assetTypeElementUuid = rootElement.element("asset-entry-uuid");

        if (assetTypeElementUuid == null) {
            continue;
        }/*from  w  w  w .  j  a v a  2  s  . co  m*/

        String journalArticleResourceUuid = getJournalArticleResourceUuid(
                assetTypeElementUuid.getStringValue());

        if (journalArticleResourceUuid == null) {
            continue;
        }

        rootElement.remove(assetTypeElementUuid);

        assetTypeElementUuid.setText(journalArticleResourceUuid);

        rootElement.add(assetTypeElementUuid);

        document.setRootElement(rootElement);

        assetEntryXmls[i] = document.formattedString(StringPool.BLANK);
    }
}

From source file:com.liferay.exportimport.controller.PortletImportController.java

License:Open Source License

public void importServicePortletPreferences(PortletDataContext portletDataContext, Element serviceElement)
        throws PortalException {

    long ownerId = GetterUtil.getLong(serviceElement.attributeValue("owner-id"));
    int ownerType = GetterUtil.getInteger(serviceElement.attributeValue("owner-type"));
    String serviceName = serviceElement.attributeValue("service-name");

    if (ownerType == PortletKeys.PREFS_OWNER_TYPE_GROUP) {
        ownerId = portletDataContext.getGroupId();
    } else if (ownerType == PortletKeys.PREFS_OWNER_TYPE_COMPANY) {
        ownerId = portletDataContext.getCompanyId();
    }//from   ww w.j  ava  2s.  c  om

    PortletPreferences portletPreferences = getPortletPreferences(portletDataContext.getCompanyId(), ownerId,
            ownerType, LayoutConstants.DEFAULT_PLID, serviceName);

    for (Attribute attribute : serviceElement.attributes()) {
        serviceElement.remove(attribute);
    }

    String xml = serviceElement.asXML();

    portletPreferences.setPreferences(xml);

    _portletPreferencesLocalService.updatePortletPreferences(portletPreferences);
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void removeAttribute(Element element, String attributeName) {
    Attribute attribute = element.attribute(attributeName);

    if (attribute == null) {
        return;/*from w  ww .  ja v a2 s  . com*/
    }

    element.remove(attribute);
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void updateDDMXSDDynamicElement(Element dynamicElementElement, String defaultLanguageId) {

    // Metadata//  ww  w . j a v a 2 s  .  c o m

    List<Element> metadataElements = dynamicElementElement.elements("meta-data");

    for (Element metadataElement : metadataElements) {
        String languageId = metadataElement.attributeValue("locale");

        if (languageId.equals(defaultLanguageId)) {
            getJournalMetadataElement(metadataElement);
        } else {
            dynamicElementElement.remove(metadataElement);
        }
    }

    Element parentElement = dynamicElementElement.getParent();

    String parentType = parentElement.attributeValue("type");

    if (Objects.equals(parentType, "list") || Objects.equals(parentType, "multi-list")) {

        Element metadataElement = dynamicElementElement.element("meta-data");

        Element labelElement = fetchMetadataEntry(metadataElement, "name", "label");

        dynamicElementElement.addAttribute("name", labelElement.getText());

        String repeatable = parentElement.attributeValue("repeatable");

        dynamicElementElement.addAttribute("repeatable", repeatable);

        String value = dynamicElementElement.attributeValue("value");

        dynamicElementElement.addAttribute("type", value);

        removeAttribute(dynamicElementElement, "value");

        dynamicElementElement.remove(metadataElement);

        return;
    }

    // Index type

    String indexType = GetterUtil.getString(dynamicElementElement.attributeValue("indexType"));

    removeAttribute(dynamicElementElement, "indexType");

    dynamicElementElement.addAttribute("index-type", indexType);

    // Type

    String type = dynamicElementElement.attributeValue("type");

    boolean multiple = GetterUtil.getBoolean(dynamicElementElement.attributeValue("multiple"));

    String newType = _ddmTypesToJournalTypes.get(type);

    if (newType.equals("list") && multiple) {
        newType = "multi-list";
    }

    dynamicElementElement.addAttribute("type", newType);

    // Removable attributes

    String[] removableAttributeNames = new String[] { "dataType", "fieldNamespace", "multiple", "readOnly",
            "required", "showLabel", "width" };

    for (String removableAttributeName : removableAttributeNames) {
        removeAttribute(dynamicElementElement, removableAttributeName);
    }

    List<Element> childrenDynamicElementElements = dynamicElementElement.elements("dynamic-element");

    for (Element childrenDynamicElementElement : childrenDynamicElementElements) {

        updateDDMXSDDynamicElement(childrenDynamicElementElement, defaultLanguageId);
    }
}

From source file:com.liferay.journal.internal.util.impl.JournalConverterImpl.java

License:Open Source License

protected void updateJournalXSDDynamicElement(Element element, String defaultLanguageId) {

    String name = element.attributeValue("name");
    String type = element.attributeValue("type");

    Element metadataElement = element.element("meta-data");

    if (metadataElement == null) {
        metadataElement = element.addElement("meta-data");
    }/*from   w  w  w .  ja  v  a 2  s  . c  o  m*/

    if (type.equals("multi-list")) {
        element.addAttribute("multiple", "true");
    } else {
        Element parentElement = element.getParent();

        String parentType = parentElement.attributeValue("type");

        if ((parentType != null) && parentType.equals("select")) {
            metadataElement.addAttribute("locale", defaultLanguageId);

            addMetadataEntry(metadataElement, "label", decodeURL(name));

            removeAttribute(element, "index-type");

            element.addAttribute("name",
                    "option" + parentElement.attributeValue("name") + StringUtil.randomString(8));
            element.addAttribute("type", "option");
            element.addAttribute("value", decodeURL(type));

            return;
        }
    }

    String indexType = StringPool.BLANK;

    Attribute indexTypeAttribute = element.attribute("index-type");

    if (indexTypeAttribute != null) {
        indexType = indexTypeAttribute.getValue();

        element.remove(indexTypeAttribute);
    }

    element.remove(element.attribute("type"));

    if (!type.equals("selection_break")) {
        String dataType = _ddmDataTypes.get(type);

        if (dataType == null) {
            dataType = "string";
        }

        element.addAttribute("dataType", dataType);
    }

    element.addAttribute("indexType", indexType);

    String required = "false";

    Element requiredElement = fetchMetadataEntry(metadataElement, "name", "required");

    if (requiredElement != null) {
        required = requiredElement.getText();
    }

    element.addAttribute("required", required);

    element.addAttribute("showLabel", "true");

    String newType = _journalTypesToDDMTypes.get(type);

    if (newType == null) {
        newType = type;
    }

    element.addAttribute("type", newType);

    if (newType.startsWith("ddm")) {
        element.addAttribute("fieldNamespace", "ddm");
    }

    metadataElement.addAttribute("locale", defaultLanguageId);

    List<Element> entryElements = metadataElement.elements();

    if (entryElements.isEmpty()) {
        addMetadataEntry(metadataElement, "label", name);
    } else {
        for (Element entryElement : entryElements) {
            String oldEntryName = entryElement.attributeValue("name");

            String newEntryName = _ddmMetadataAttributes.get(oldEntryName);

            if (newEntryName == null) {
                metadataElement.remove(entryElement);
            } else {
                entryElement.addAttribute("name", newEntryName);
            }
        }
    }

    if (newType.equals("ddm-date") || newType.equals("ddm-decimal") || newType.equals("ddm-integer")
            || newType.equals("ddm-link-to-page") || newType.equals("ddm-number")
            || newType.equals("ddm-text-html") || newType.equals("text") || newType.equals("textarea")) {

        element.addAttribute("width", "25");
    } else if (newType.equals("ddm-image")) {
        element.addAttribute("fieldNamespace", "ddm");
        element.addAttribute("readOnly", "false");
    }

    element.add(metadataElement.detach());

    List<Element> dynamicElementElements = element.elements("dynamic-element");

    for (Element dynamicElementElement : dynamicElementElements) {
        updateJournalXSDDynamicElement(dynamicElementElement, defaultLanguageId);
    }
}

From source file:com.liferay.journal.transformer.LocaleTransformerListener.java

License:Open Source License

protected void filter(Element dynamicElementElement, DDMStructure ddmStructure, String name,
        String defaultLanguageId) throws PortalException {

    boolean localizable = GetterUtil.getBoolean(ddmStructure.getFieldProperty(name, "localizable"));

    List<Element> dynamicContentElements = dynamicElementElement.elements("dynamic-content");

    for (Element dynamicContentElement : dynamicContentElements) {
        String languageId = dynamicContentElement.attributeValue("language-id");

        if (!localizable && !languageId.equals(defaultLanguageId)) {
            dynamicElementElement.remove(dynamicContentElement);
        }//  w  ww . j ava 2s. co  m
    }
}

From source file:com.liferay.journal.transformer.LocaleTransformerListener.java

License:Open Source License

protected void filterByLanguage(Element root, String languageId, String defaultLanguageId) {

    Element defaultLanguageElement = null;

    boolean hasLanguageIdElement = false;

    for (Element element : root.elements()) {
        String tempLanguageId = element.attributeValue("language-id", languageId);

        if (StringUtil.equalsIgnoreCase(tempLanguageId, languageId)) {
            if (Validator.isNotNull(element.attributeValue("language-id", StringPool.BLANK))) {

                hasLanguageIdElement = true;
            }//w  ww. ja v  a 2 s  . com

            filterByLanguage(element, languageId, defaultLanguageId);
        } else {
            if (StringUtil.equalsIgnoreCase(tempLanguageId, defaultLanguageId)) {

                defaultLanguageElement = element;
            }

            root.remove(element);
        }
    }

    if (!hasLanguageIdElement && (defaultLanguageElement != null)) {
        root.add(defaultLanguageElement);

        filterByLanguage(defaultLanguageElement, languageId, defaultLanguageId);
    }
}

From source file:com.liferay.lms.servlet.SCORMFileServerServlet.java

License:Open Source License

/**
 * Procesa los metodos HTTP GET y POST.<br>
 * Busca en la ruta que se le ha pedido el comienzo del directorio
 * "contenidos" y sirve el fichero./*from   w  w w . j a  va  2s . co  m*/
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response, boolean content)
        throws ServletException, java.io.IOException {
    String mime_type;
    String charset;
    String patharchivo;
    String uri;

    try {
        User user = PortalUtil.getUser(request);

        if (user == null) {
            String userId = null;
            String companyId = null;
            Cookie[] cookies = ((HttpServletRequest) request).getCookies();
            if (Validator.isNotNull(cookies)) {
                for (Cookie c : cookies) {
                    if ("COMPANY_ID".equals(c.getName())) {
                        companyId = c.getValue();
                    } else if ("ID".equals(c.getName())) {
                        userId = hexStringToStringByAscii(c.getValue());
                    }
                }
            }

            if (userId != null && companyId != null) {
                try {
                    Company company = CompanyLocalServiceUtil.getCompany(Long.parseLong(companyId));
                    Key key = company.getKeyObj();

                    String userIdPlain = Encryptor.decrypt(key, userId);

                    user = UserLocalServiceUtil.getUser(Long.valueOf(userIdPlain));

                    // Now you can set the liferayUser into a thread local
                    // for later use or
                    // something like that.

                } catch (Exception pException) {
                    throw new RuntimeException(pException);
                }
            }
        }

        String rutaDatos = SCORMContentLocalServiceUtil.getBaseDir();

        // Se comprueba que el usuario tiene permisos para acceder.
        // Damos acceso a todo el mundo al directorio "personalizacion",
        // para permitir mostrar a todos la pantalla de identificacion.
        uri = URLDecoder.decode(request.getRequestURI(), "UTF-8");
        uri = uri.substring(uri.indexOf("scorm/") + "scorm/".length());
        patharchivo = rutaDatos + "/" + uri;

        String[] params = uri.split("/");
        long groupId = GetterUtil.getLong(params[1]);
        String uuid = params[2];
        SCORMContent scormContent = SCORMContentLocalServiceUtil.getSCORMContentByUuidAndGroupId(uuid, groupId);

        boolean allowed = false;
        if (user == null) {
            user = UserLocalServiceUtil.getDefaultUser(PortalUtil.getDefaultCompanyId());
        }
        PermissionChecker pc = PermissionCheckerFactoryUtil.create(user);
        allowed = pc.hasPermission(groupId, SCORMContent.class.getName(), scormContent.getScormId(),
                ActionKeys.VIEW);
        if (!allowed) {
            AssetEntry scormAsset = AssetEntryLocalServiceUtil.getEntry(SCORMContent.class.getName(),
                    scormContent.getPrimaryKey());
            long scormAssetId = scormAsset.getEntryId();
            int typeId = new Long((new SCORMLearningActivityType()).getTypeId()).intValue();
            long[] groupIds = user.getGroupIds();
            for (long gId : groupIds) {
                List<LearningActivity> acts = LearningActivityLocalServiceUtil
                        .getLearningActivitiesOfGroupAndType(gId, typeId);
                for (LearningActivity act : acts) {
                    String entryId = LearningActivityLocalServiceUtil.getExtraContentValue(act.getActId(),
                            "assetEntry");
                    if (Validator.isNotNull(entryId) && Long.valueOf(entryId) == scormAssetId) {
                        allowed = pc.hasPermission(gId, LearningActivity.class.getName(), act.getActId(),
                                ActionKeys.VIEW);
                        if (allowed) {
                            break;
                        }
                    }
                }
                if (allowed) {
                    break;
                }
            }

        }
        if (allowed) {

            File archivo = new File(patharchivo);

            // Si el archivo existe y no es un directorio se sirve. Si no,
            // no se hace nada.
            if (archivo.exists() && archivo.isFile()) {

                // El content type siempre antes del printwriter
                mime_type = MimeTypesUtil.getContentType(archivo);
                charset = "";
                if (archivo.getName().toLowerCase().endsWith(".html")
                        || archivo.getName().toLowerCase().endsWith(".htm")) {
                    mime_type = "text/html";
                    if (isISO(FileUtils.readFileToString(archivo))) {
                        charset = "ISO-8859-1";
                    }
                }
                if (archivo.getName().toLowerCase().endsWith(".swf")) {
                    mime_type = "application/x-shockwave-flash";
                }
                if (archivo.getName().toLowerCase().endsWith(".mp4")) {
                    mime_type = "video/mp4";
                }
                if (archivo.getName().toLowerCase().endsWith(".flv")) {
                    mime_type = "video/x-flv";
                }
                response.setContentType(mime_type);
                if (Validator.isNotNull(charset)) {
                    response.setCharacterEncoding(charset);

                }
                response.addHeader("Content-Type",
                        mime_type + (Validator.isNotNull(charset) ? "; " + charset : ""));
                /*if (archivo.getName().toLowerCase().endsWith(".swf")
                      || archivo.getName().toLowerCase().endsWith(".flv")) {
                   response.addHeader("Content-Length",
                String.valueOf(archivo.length()));
                }
                */
                if (archivo.getName().toLowerCase().endsWith("imsmanifest.xml")) {
                    FileInputStream fis = new FileInputStream(patharchivo);

                    String sco = ParamUtil.get(request, "scoshow", "");
                    Document manifest = SAXReaderUtil.read(fis);
                    if (sco.length() > 0) {

                        Element organizatEl = manifest.getRootElement().element("organizations")
                                .element("organization");
                        Element selectedItem = selectItem(organizatEl, sco);
                        if (selectedItem != null) {
                            selectedItem.detach();
                            java.util.List<Element> items = organizatEl.elements("item");
                            for (Element item : items) {

                                organizatEl.remove(item);
                            }
                            organizatEl.add(selectedItem);
                        }
                    }
                    //clean unused resources.
                    Element resources = manifest.getRootElement().element("resources");
                    java.util.List<Element> theResources = resources.elements("resource");
                    Element organizatEl = manifest.getRootElement().element("organizations")
                            .element("organization");
                    java.util.List<String> identifiers = getIdentifierRefs(organizatEl);
                    for (Element resource : theResources) {
                        String identifier = resource.attributeValue("identifier");
                        if (!identifiers.contains(identifier)) {
                            resources.remove(resource);
                        }
                    }
                    response.getWriter().print(manifest.asXML());
                    fis.close();
                    return;

                }

                if (mime_type.startsWith("text") || mime_type.endsWith("javascript")
                        || mime_type.equals("application/xml")) {

                    java.io.OutputStream out = response.getOutputStream();
                    FileInputStream fis = new FileInputStream(patharchivo);

                    byte[] buffer = new byte[512];
                    int i = 0;

                    while (fis.available() > 0) {
                        i = fis.read(buffer);
                        if (i == 512)
                            out.write(buffer);
                        else
                            out.write(buffer, 0, i);

                    }

                    fis.close();
                    out.flush();
                    out.close();
                    return;
                }
                //If not manifest
                String fileName = archivo.getName();
                long length = archivo.length();
                long lastModified = archivo.lastModified();
                String eTag = fileName + "_" + length + "_" + lastModified;
                long expires = System.currentTimeMillis() + DEFAULT_EXPIRE_TIME;
                String ifNoneMatch = request.getHeader("If-None-Match");
                if (ifNoneMatch != null && matches(ifNoneMatch, eTag)) {
                    response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
                    response.setHeader("ETag", eTag); // Required in 304.
                    response.setDateHeader("Expires", expires); // Postpone cache with 1 week.
                    return;
                }
                long ifModifiedSince = request.getDateHeader("If-Modified-Since");
                if (ifNoneMatch == null && ifModifiedSince != -1 && ifModifiedSince + 1000 > lastModified) {
                    response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
                    response.setHeader("ETag", eTag); // Required in 304.
                    response.setDateHeader("Expires", expires); // Postpone cache with 1 week.
                    return;
                }

                // If-Match header should contain "*" or ETag. If not, then return 412.
                String ifMatch = request.getHeader("If-Match");
                if (ifMatch != null && !matches(ifMatch, eTag)) {
                    response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
                    return;
                }

                // If-Unmodified-Since header should be greater than LastModified. If not, then return 412.
                long ifUnmodifiedSince = request.getDateHeader("If-Unmodified-Since");
                if (ifUnmodifiedSince != -1 && ifUnmodifiedSince + 1000 <= lastModified) {
                    response.sendError(HttpServletResponse.SC_PRECONDITION_FAILED);
                    return;
                }

                // Validate and process range -------------------------------------------------------------

                // Prepare some variables. The full Range represents the complete file.
                Range full = new Range(0, length - 1, length);
                List<Range> ranges = new ArrayList<Range>();

                // Validate and process Range and If-Range headers.
                String range = request.getHeader("Range");
                if (range != null) {

                    // Range header should match format "bytes=n-n,n-n,n-n...". If not, then return 416.
                    if (!range.matches("^bytes=\\d*-\\d*(,\\d*-\\d*)*$")) {
                        response.setHeader("Content-Range", "bytes */" + length); // Required in 416.
                        response.sendError(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
                        return;
                    }

                    // If-Range header should either match ETag or be greater then LastModified. If not,
                    // then return full file.
                    String ifRange = request.getHeader("If-Range");
                    if (ifRange != null && !ifRange.equals(eTag)) {
                        try {
                            long ifRangeTime = request.getDateHeader("If-Range"); // Throws IAE if invalid.
                            if (ifRangeTime != -1 && ifRangeTime + 1000 < lastModified) {
                                ranges.add(full);
                            }
                        } catch (IllegalArgumentException ignore) {
                            ranges.add(full);
                        }
                    }

                    // If any valid If-Range header, then process each part of byte range.
                    if (ranges.isEmpty()) {
                        for (String part : range.substring(6).split(",")) {
                            // Assuming a file with length of 100, the following examples returns bytes at:
                            // 50-80 (50 to 80), 40- (40 to length=100), -20 (length-20=80 to length=100).
                            long start = sublong(part, 0, part.indexOf("-"));
                            long end = sublong(part, part.indexOf("-") + 1, part.length());

                            if (start == -1) {
                                start = length - end;
                                end = length - 1;
                            } else if (end == -1 || end > length - 1) {
                                end = length - 1;
                            }

                            // Check if Range is syntactically valid. If not, then return 416.
                            if (start > end) {
                                response.setHeader("Content-Range", "bytes */" + length); // Required in 416.
                                response.sendError(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
                                return;
                            }

                            // Add range.
                            ranges.add(new Range(start, end, length));
                        }
                    }
                }
                boolean acceptsGzip = false;
                String disposition = "inline";

                if (mime_type.startsWith("text")) {
                    //String acceptEncoding = request.getHeader("Accept-Encoding");
                    // acceptsGzip = acceptEncoding != null && accepts(acceptEncoding, "gzip");
                    // mime_type += ";charset=UTF-8";
                }

                // Else, expect for images, determine content disposition. If content type is supported by
                // the browser, then set to inline, else attachment which will pop a 'save as' dialogue.
                else if (!mime_type.startsWith("image")) {
                    String accept = request.getHeader("Accept");
                    disposition = accept != null && accepts(accept, mime_type) ? "inline" : "attachment";
                }

                // Initialize response.
                response.reset();
                response.setBufferSize(DEFAULT_BUFFER_SIZE);
                response.setHeader("Content-Disposition", disposition + ";filename=\"" + fileName + "\"");
                response.setHeader("Accept-Ranges", "bytes");
                response.setHeader("ETag", eTag);
                response.setDateHeader("Last-Modified", lastModified);
                response.setDateHeader("Expires", expires);

                // Send requested file (part(s)) to client ------------------------------------------------

                // Prepare streams.
                RandomAccessFile input = null;
                OutputStream output = null;

                try {
                    // Open streams.
                    input = new RandomAccessFile(archivo, "r");
                    output = response.getOutputStream();

                    if (ranges.isEmpty() || ranges.get(0) == full) {

                        // Return full file.
                        Range r = full;
                        response.setContentType(mime_type);
                        response.setHeader("Content-Range", "bytes " + r.start + "-" + r.end + "/" + r.total);

                        if (content) {

                            // Content length is not directly predictable in case of GZIP.
                            // So only add it if there is no means of GZIP, else browser will hang.
                            response.setHeader("Content-Length", String.valueOf(r.length));

                            // Copy full range.
                            copy(input, output, r.start, r.length);
                        }

                    } else if (ranges.size() == 1) {

                        // Return single part of file.
                        Range r = ranges.get(0);
                        response.setContentType(mime_type);
                        response.setHeader("Content-Range", "bytes " + r.start + "-" + r.end + "/" + r.total);
                        response.setHeader("Content-Length", String.valueOf(r.length));
                        response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); // 206.

                        if (content) {
                            // Copy single part range.
                            copy(input, output, r.start, r.length);
                        }

                    } else {

                        // Return multiple parts of file.
                        response.setContentType("multipart/byteranges; boundary=" + MULTIPART_BOUNDARY);
                        response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT); // 206.

                        if (content) {
                            // Cast back to ServletOutputStream to get the easy println methods.
                            ServletOutputStream sos = (ServletOutputStream) output;

                            // Copy multi part range.
                            for (Range r : ranges) {
                                // Add multipart boundary and header fields for every range.
                                sos.println();
                                sos.println("--" + MULTIPART_BOUNDARY);
                                sos.println("Content-Type: " + mime_type);
                                sos.println("Content-Range: bytes " + r.start + "-" + r.end + "/" + r.total);

                                // Copy single part range of multi part range.
                                copy(input, output, r.start, r.length);
                            }

                            // End with multipart boundary.
                            sos.println();
                            sos.println("--" + MULTIPART_BOUNDARY + "--");
                        }
                    }
                } finally {
                    // Gently close streams.
                    close(output);
                    close(input);
                }
            } else {
                //java.io.OutputStream out = response.getOutputStream();
                response.sendError(404);
                //out.write(uri.getBytes());
            }
        } else {
            response.sendError(401);
        }
    } catch (Exception e) {
        System.out.println("Error en el processRequest() de ServidorArchivos: " + e.getMessage());
    }
}

From source file:com.liferay.portlet.dynamicdatamapping.service.impl.DDMStructureLocalServiceImpl.java

License:Open Source License

protected void syncStructureTemplatesFields(DDMTemplate template, Element templateElement)
        throws PortalException, SystemException {

    DDMStructure structure = template.getStructure();

    List<Element> dynamicElementElements = templateElement.elements("dynamic-element");

    for (Element dynamicElementElement : dynamicElementElements) {
        String dataType = dynamicElementElement.attributeValue("dataType");
        String fieldName = dynamicElementElement.attributeValue("name");

        if (Validator.isNull(dataType)) {
            continue;
        }//w w w  . j a  va  2s . c o m

        if (!structure.hasField(fieldName)) {
            templateElement.remove(dynamicElementElement);

            continue;
        }

        String mode = template.getMode();

        if (mode.equals(DDMTemplateConstants.TEMPLATE_MODE_CREATE)) {
            boolean fieldRequired = structure.getFieldRequired(fieldName);

            List<Element> metadataElements = dynamicElementElement.elements("meta-data");

            for (Element metadataElement : metadataElements) {
                for (Element metadataEntryElement : metadataElement.elements()) {

                    String attributeName = metadataEntryElement.attributeValue("name");

                    if (fieldRequired && attributeName.equals("required")) {
                        metadataEntryElement.setText("true");
                    }
                }
            }
        }

        syncStructureTemplatesFields(template, dynamicElementElement);
    }
}

From source file:com.liferay.portlet.journal.util.JournalConverterImpl.java

License:Open Source License

protected void updateDDMXSDDynamicElement(Element dynamicElementElement, String defaultLocale) {

    // Metadata//from  ww  w.j av a2  s.co  m

    List<Element> metadataElements = dynamicElementElement.elements("meta-data");

    for (Element metadataElement : metadataElements) {
        String locale = metadataElement.attributeValue("locale");

        if (locale.equals(defaultLocale)) {
            getJournalMetadataElement(metadataElement);
        } else {
            dynamicElementElement.remove(metadataElement);
        }
    }

    Element parentElement = dynamicElementElement.getParent();

    String parentType = parentElement.attributeValue("type");

    if (Validator.equals(parentType, "list") || Validator.equals(parentType, "multi-list")) {

        String repeatable = parentElement.attributeValue("repeatable");

        String value = dynamicElementElement.attributeValue("value");

        dynamicElementElement.addAttribute("name", value);
        dynamicElementElement.addAttribute("repeatable", repeatable);
        dynamicElementElement.addAttribute("type", "value");

        removeAttribute(dynamicElementElement, "value");

        for (Element metadataElement : dynamicElementElement.elements("meta-data")) {

            dynamicElementElement.remove(metadataElement);
        }

        return;
    }

    // Index type

    String indexType = GetterUtil.getString(dynamicElementElement.attributeValue("indexType"));

    removeAttribute(dynamicElementElement, "indexType");

    dynamicElementElement.addAttribute("index-type", indexType);

    // Type

    String type = dynamicElementElement.attributeValue("type");

    boolean multiple = GetterUtil.getBoolean(dynamicElementElement.attributeValue("multiple"));

    String newType = _ddmTypesToJournalTypes.get(type);

    if (newType.equals("list") && multiple) {
        newType = "multi-list";
    }

    dynamicElementElement.addAttribute("type", newType);

    // Removable attributes

    String[] removableAttributeNames = new String[] { "dataType", "fieldNamespace", "multiple", "readOnly",
            "required", "showLabel", "width" };

    for (String removableAttributeName : removableAttributeNames) {
        removeAttribute(dynamicElementElement, removableAttributeName);
    }

    List<Element> childrenDynamicElementElements = dynamicElementElement.elements("dynamic-element");

    for (Element childrenDynamicElementElement : childrenDynamicElementElements) {

        updateDDMXSDDynamicElement(childrenDynamicElementElement, defaultLocale);
    }
}