Example usage for com.liferay.portal.kernel.util ArrayUtil subset

List of usage examples for com.liferay.portal.kernel.util ArrayUtil subset

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util ArrayUtil subset.

Prototype

public static <T> T[] subset(T[] array, int start, int end) 

Source Link

Usage

From source file:com.liferay.document.library.webserver.test.WebServerRangeTest.java

License:Open Source License

@Test
public void testMultipartRange() throws Exception {
    String[] ranges = { "0-9", "25-25", "30-49", "70-79" };

    String rangeHeader = "bytes=";

    for (int i = 0; i < ranges.length; i++) {
        rangeHeader += ranges[i];/*ww w.j ava2s  . c o  m*/

        if (i != (ranges.length - 1)) {
            rangeHeader += StringPool.COMMA;
        }
    }

    MockHttpServletResponse mockHttpServletResponse = testRange(rangeHeader);

    String contentType = mockHttpServletResponse.getContentType();

    Assert.assertTrue(contentType.startsWith(_BOUNDARY_PREFACE));

    String boundary = contentType.substring(_BOUNDARY_PREFACE.length());

    String responseBody = mockHttpServletResponse.getContentAsString();

    Assert.assertTrue(responseBody.startsWith("\r\n--" + boundary + "\r\n"));
    Assert.assertTrue(responseBody.endsWith("--" + boundary + "--\r\n"));

    String[] responseBodies = StringUtil.split(responseBody, boundary);

    Assert.assertEquals(Arrays.toString(responseBodies), ranges.length + 2, responseBodies.length);
    Assert.assertEquals(StringPool.DOUBLE_DASH, responseBodies[0]);
    Assert.assertEquals(StringPool.DOUBLE_DASH, responseBodies[ranges.length + 1]);

    for (int i = 0; i < ranges.length; i++) {
        String[] lines = StringUtil.split(responseBodies[i + 1], StringPool.RETURN_NEW_LINE);

        Assert.assertEquals("Content-Type: text/plain", lines[0]);
        Assert.assertEquals("Content-Range: bytes " + ranges[i] + "/80", lines[1]);
        Assert.assertTrue(Validator.isNull(lines[2]));

        String[] rangePair = StringUtil.split(ranges[i], StringPool.DASH);

        int start = GetterUtil.getInteger(rangePair[0]);
        int end = GetterUtil.getInteger(rangePair[1]);

        byte[] bytes = ArrayUtil.subset(_SAMPLE_DATA.getBytes(), start, end + 1);

        Assert.assertArrayEquals(bytes, lines[3].getBytes("UTF-8"));

        Assert.assertEquals(StringPool.DOUBLE_DASH, lines[4]);
    }
}

From source file:com.liferay.knowledgebase.service.impl.KBArticleServiceImpl.java

License:Open Source License

@Override
public KBArticleSearchDisplay getKBArticleSearchDisplay(long groupId, String title, String content, int status,
        Date startDate, Date endDate, boolean andOperator, int[] curStartValues, int cur, int delta,
        OrderByComparator<KBArticle> orderByComparator) throws PortalException {

    // See LPS-9546

    int start = 0;

    if (curStartValues.length > (cur - SearchContainer.DEFAULT_CUR)) {
        start = curStartValues[cur - SearchContainer.DEFAULT_CUR];

        curStartValues = ArrayUtil.subset(curStartValues, 0, cur - SearchContainer.DEFAULT_CUR + 1);
    } else {// www .  ja  v a2s.c o m
        cur = SearchContainer.DEFAULT_CUR;

        curStartValues = new int[] { 0 };
    }

    int end = start + _INTERVAL;

    List<KBArticle> kbArticles = new ArrayList<KBArticle>();

    int curStartValue = 0;

    while (curStartValue == 0) {
        List<KBArticle> curKBArticles = kbArticleLocalService.search(groupId, title, content, status, startDate,
                endDate, andOperator, start, end, orderByComparator);

        if (curKBArticles.isEmpty()) {
            break;
        }

        for (int i = 0; i < curKBArticles.size(); i++) {
            KBArticle curKBArticle = curKBArticles.get(i);

            if (!KBArticlePermission.contains(getPermissionChecker(), curKBArticle, ActionKeys.VIEW)) {

                continue;
            }

            if (kbArticles.size() == delta) {
                curStartValue = start + i;

                break;
            }

            kbArticles.add(curKBArticle);
        }

        start = start + _INTERVAL;
        end = start + _INTERVAL;
    }

    int total = ((cur - 1) * delta) + kbArticles.size();

    if (curStartValue > 0) {
        curStartValues = ArrayUtil.append(curStartValues, curStartValue);

        total = total + 1;
    }

    return new KBArticleSearchDisplayImpl(kbArticles, total, curStartValues);
}

From source file:com.liferay.knowledgebase.service.impl.KBStructureServiceImpl.java

License:Open Source License

public KBStructureSearchDisplay getKBStructureSearchDisplay(long groupId, String title, String content,
        Date startDate, Date endDate, boolean andOperator, int[] curStartValues, int cur, int delta,
        OrderByComparator orderByComparator) throws PortalException, SystemException {

    // See LPS-9546

    int start = 0;

    if (curStartValues.length > (cur - SearchContainer.DEFAULT_CUR)) {
        start = curStartValues[cur - SearchContainer.DEFAULT_CUR];

        curStartValues = ArrayUtil.subset(curStartValues, 0, cur - SearchContainer.DEFAULT_CUR + 1);
    } else {//from   w  ww. j ava 2  s.  com
        cur = SearchContainer.DEFAULT_CUR;

        curStartValues = new int[] { 0 };
    }

    int end = start + _INTERVAL;

    List<KBStructure> kbStructures = new ArrayList<KBStructure>();

    int curStartValue = 0;

    while (curStartValue == 0) {
        List<KBStructure> curKBStructures = kbStructureLocalService.search(groupId, title, content, startDate,
                endDate, andOperator, start, end, orderByComparator);

        if (curKBStructures.isEmpty()) {
            break;
        }

        for (int i = 0; i < curKBStructures.size(); i++) {
            KBStructure curKBStructure = curKBStructures.get(i);

            if (!KBStructurePermission.contains(getPermissionChecker(), curKBStructure, ActionKeys.VIEW)) {

                continue;
            }

            if (kbStructures.size() == delta) {
                curStartValue = start + i;

                break;
            }

            kbStructures.add(curKBStructure);
        }

        start = start + _INTERVAL;
        end = start + _INTERVAL;
    }

    int total = ((cur - 1) * delta) + kbStructures.size();

    if (curStartValue > 0) {
        curStartValues = ArrayUtil.append(curStartValues, curStartValue);

        total = total + 1;
    }

    return new KBStructureSearchDisplayImpl(kbStructures, total, curStartValues);
}

From source file:com.liferay.knowledgebase.service.impl.KBTemplateServiceImpl.java

License:Open Source License

@Override
public KBTemplateSearchDisplay getKBTemplateSearchDisplay(long groupId, String title, String content,
        Date startDate, Date endDate, boolean andOperator, int[] curStartValues, int cur, int delta,
        OrderByComparator<KBTemplate> orderByComparator) throws PortalException {

    // See LPS-9546

    int start = 0;

    if (curStartValues.length > (cur - SearchContainer.DEFAULT_CUR)) {
        start = curStartValues[cur - SearchContainer.DEFAULT_CUR];

        curStartValues = ArrayUtil.subset(curStartValues, 0, cur - SearchContainer.DEFAULT_CUR + 1);
    } else {//w  w w  .  j  a  va2s .com
        cur = SearchContainer.DEFAULT_CUR;

        curStartValues = new int[] { 0 };
    }

    int end = start + _INTERVAL;

    List<KBTemplate> kbTemplates = new ArrayList<KBTemplate>();

    int curStartValue = 0;

    while (curStartValue == 0) {
        List<KBTemplate> curKBTemplates = kbTemplateLocalService.search(groupId, title, content, startDate,
                endDate, andOperator, start, end, orderByComparator);

        if (curKBTemplates.isEmpty()) {
            break;
        }

        for (int i = 0; i < curKBTemplates.size(); i++) {
            KBTemplate curKBTemplate = curKBTemplates.get(i);

            if (!KBTemplatePermission.contains(getPermissionChecker(), curKBTemplate, ActionKeys.VIEW)) {

                continue;
            }

            if (kbTemplates.size() == delta) {
                curStartValue = start + i;

                break;
            }

            kbTemplates.add(curKBTemplate);
        }

        start = start + _INTERVAL;
        end = start + _INTERVAL;
    }

    int total = ((cur - 1) * delta) + kbTemplates.size();

    if (curStartValue > 0) {
        curStartValues = ArrayUtil.append(curStartValues, curStartValue);

        total = total + 1;
    }

    return new KBTemplateSearchDisplayImpl(kbTemplates, total, curStartValues);
}

From source file:com.liferay.knowledgebase.util.KnowledgeBaseUtil.java

License:Open Source License

public static Long[][] getParams(Long[] params) {
    if (ArrayUtil.isEmpty(params)) {
        return null;
    }/*from w w w  . j  a  va 2s.co  m*/

    if (params.length <= _SQL_DATA_MAX_PARAMETERS) {
        return new Long[][] { new Long[0], params };
    }

    return new Long[][] { ArrayUtil.subset(params, _SQL_DATA_MAX_PARAMETERS, params.length),
            ArrayUtil.subset(params, 0, _SQL_DATA_MAX_PARAMETERS) };
}

From source file:com.liferay.petra.mail.MailEngine.java

License:Open Source License

private static Address[] _getBatchAddresses(Address[] addresses, int index, int batchSize) {

    if ((batchSize == _BATCH_SIZE) && (index == 0)) {
        return addresses;
    } else if (batchSize == _BATCH_SIZE) {
        return null;
    }/*w  w  w  .ja  va2 s  .com*/

    int start = index * batchSize;

    if (start > addresses.length) {
        return null;
    }

    int end = (index + 1) * batchSize;

    if (end > addresses.length) {
        end = addresses.length;
    }

    return ArrayUtil.subset(addresses, start, end);
}