Package com.almworks.jira.structure.util

Source Code of com.almworks.jira.structure.util.StructureUtil

package com.almworks.jira.structure.util;

import com.almworks.integers.IntArray;
import com.almworks.integers.IntCollections;
import com.almworks.integers.LongArray;
import com.almworks.integers.LongCollections;
import com.almworks.jira.structure.api.PermissionLevel;
import com.almworks.jira.structure.api.PermissionRule;
import com.atlassian.crowd.embedded.api.User;
import org.slf4j.LoggerFactory;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import java.util.Arrays;
import java.util.List;

public class StructureUtil {
  private static final org.slf4j.Logger logger = LoggerFactory.getLogger(StructureUtil.class);

  public static final long GLOBAL_STRUCTURE_ID = 1;

  // todo reverse in Integers
  @Deprecated
  public static LongArray reverse(LongArray array) {
    int size = array.size();
    long[] longs = array.extractHostArray();
    for (int i = 0, m2 = size / 2; i < m2; i++) {
      LongCollections.swap(longs, i, size - 1 - i);
    }
    return new LongArray(longs, size);
  }

  // todo reverse in Integers
  @Deprecated
  public static IntArray reverse(IntArray array) {
    int size = array.size();
    int[] ints = array.extractHostArray();
    for (int i = 0, m2 = size / 2; i < m2; i++) {
      IntCollections.swap(ints, i, size - 1 - i);
    }
    return new IntArray(ints, size);
  }

  public static PermissionLevel applyPermissions(List<PermissionRule> permissions, User user,
    List<Object> stack, La<Long, List<PermissionRule>> resolver, PermissionLevel pass)
  {
    PermissionLevel r = pass;
    if (permissions != null) {
      for (PermissionRule permission : permissions) {
        r = permission.apply(user, r, stack, resolver);
      }
    }
    return r;
  }

  public static JAXBContext createJAXBContext(Class contextClass) {
    Thread thread = Thread.currentThread();
    ClassLoader contextLoader = thread.getContextClassLoader();
    ClassLoader[] loaders = {ClassLoader.getSystemClassLoader(), contextLoader, JAXBContext.class.getClassLoader(), contextClass.getClassLoader()};
    JAXBContext context = null;
    try {
      context = JAXBContext.newInstance(contextClass);
    } catch (JAXBException e) {
      for (int i = 1; i < loaders.length; i++) {
        try {
          thread.setContextClassLoader(loaders[i]);
          context = JAXBContext.newInstance(contextClass);
          if (context != null) break;
        } catch (JAXBException e2) {
          // ignore
        }
      }
      if (context == null) {
        logger.error("cannot initialize JAXB context for " + contextClass + " (tried loaders: " + Arrays.asList(loaders) + ")", e);
      }
    } finally {
      thread.setContextClassLoader(contextLoader);
    }
    return context;
  }
}
TOP

Related Classes of com.almworks.jira.structure.util.StructureUtil

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.