Example usage for org.apache.commons.lang ArrayUtils add

List of usage examples for org.apache.commons.lang ArrayUtils add

Introduction

In this page you can find the example usage for org.apache.commons.lang ArrayUtils add.

Prototype

public static short[] add(short[] array, short element) 

Source Link

Document

Copies the given array and adds the given element at the end of the new array.

Usage

From source file:org.wso2.carbon.identity.oauth2.dao.AccessTokenDAOImpl.java

@Override
public Set<AccessTokenDO> getAccessTokensOfUserStore(int tenantId, String userStoreDomain)
        throws IdentityOAuth2Exception {

    if (log.isDebugEnabled()) {
        log.debug("Retrieving all ACTIVE and EXPIRED access tokens of userstore: " + userStoreDomain
                + " tenant " + "id: " + tenantId);
    }/* w  w  w .  j  ava 2  s  .  c o  m*/
    // we do not support access token partitioning here
    Connection connection = IdentityDatabaseUtil.getDBConnection();

    userStoreDomain = OAuth2Util.getSanitizedUserStoreDomain(userStoreDomain);
    PreparedStatement prepStmt = null;
    ResultSet resultSet = null;
    Map<String, AccessTokenDO> accessTokenDOMap = new HashMap<>();
    try {
        String sql = OAuth2Util.getTokenPartitionedSqlByUserStore(SQLQueries.LIST_ALL_TOKENS_IN_USER_STORE,
                userStoreDomain);

        prepStmt = connection.prepareStatement(sql);
        prepStmt.setInt(1, tenantId);
        prepStmt.setString(2, userStoreDomain);
        resultSet = prepStmt.executeQuery();

        while (resultSet.next()) {
            String accessToken = null;
            if (isHashDisabled) {
                accessToken = getPersistenceProcessor()
                        .getPreprocessedAccessTokenIdentifier(resultSet.getString(1));
            }
            if (accessTokenDOMap.get(accessToken) == null) {
                String refreshToken = null;
                if (isHashDisabled) {
                    refreshToken = getPersistenceProcessor()
                            .getPreprocessedRefreshToken(resultSet.getString(2));
                }
                Timestamp issuedTime = resultSet.getTimestamp(3,
                        Calendar.getInstance(TimeZone.getTimeZone(UTC)));
                Timestamp refreshTokenIssuedTime = resultSet.getTimestamp(4,
                        Calendar.getInstance(TimeZone.getTimeZone(UTC)));
                long validityPeriodInMillis = resultSet.getLong(5);
                long refreshTokenValidityPeriodMillis = resultSet.getLong(6);
                String tokenType = resultSet.getString(7);
                String[] scope = OAuth2Util.buildScopeArray(resultSet.getString(8));
                String tokenId = resultSet.getString(9);
                String authzUser = resultSet.getString(10);
                String consumerKey = resultSet.getString(11);

                AuthenticatedUser user = new AuthenticatedUser();
                user.setUserName(authzUser);
                user.setTenantDomain(OAuth2Util.getTenantDomain(tenantId));
                user.setUserStoreDomain(userStoreDomain);
                AccessTokenDO dataDO = new AccessTokenDO(consumerKey, user, scope, issuedTime,
                        refreshTokenIssuedTime, validityPeriodInMillis, refreshTokenValidityPeriodMillis,
                        tokenType);
                dataDO.setAccessToken(accessToken);
                dataDO.setRefreshToken(refreshToken);
                dataDO.setTokenId(tokenId);
                dataDO.setTenantID(tenantId);
                accessTokenDOMap.put(accessToken, dataDO);
            } else {
                String scope = resultSet.getString(8).trim();
                AccessTokenDO accessTokenDO = accessTokenDOMap.get(accessToken);
                accessTokenDO.setScope((String[]) ArrayUtils.add(accessTokenDO.getScope(), scope));
            }
        }
        connection.commit();
    } catch (SQLException e) {
        String errorMsg = "Error occurred while retrieving 'ACTIVE or EXPIRED' access tokens for "
                + "user in store domain : " + userStoreDomain + " and tenant id : " + tenantId;
        throw new IdentityOAuth2Exception(errorMsg, e);
    } finally {
        IdentityDatabaseUtil.closeAllConnections(connection, resultSet, prepStmt);
    }

    return new HashSet<>(accessTokenDOMap.values());
}

From source file:org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO.java

public Set<AccessTokenDO> retrieveAccessTokens(String consumerKey, String userName, String userStoreDomain,
        boolean includeExpired) throws IdentityOAuth2Exception {

    Connection connection = IdentityDatabaseUtil.getDBConnection();
    boolean isUsernameCaseSensitive = IdentityUtil.isUserStoreInUsernameCaseSensitive(userName);
    String tenantDomain = MultitenantUtils.getTenantDomain(userName);
    String tenantAwareUsername = MultitenantUtils.getTenantAwareUsername(userName);
    String tenantAwareUsernameWithNoUserDomain = UserCoreUtil.removeDomainFromName(tenantAwareUsername);
    String userDomain = UserCoreUtil.extractDomainFromName(userName).toUpperCase();

    PreparedStatement prepStmt = null;
    Map<String, AccessTokenDO> accessTokenDOMap = new HashMap<>();
    try {//from  w w w.  j  av a 2s.  c o m
        int tenantId = OAuth2Util.getTenantId(tenantDomain);
        String sql = SQLQueries.RETRIEVE_ACTIVE_ACCESS_TOKEN_BY_CLIENT_ID_USER;
        if (includeExpired) {
            sql = SQLQueries.RETRIEVE_ACTIVE_EXPIRED_ACCESS_TOKEN_BY_CLIENT_ID_USER;
        }
        if (StringUtils.isNotEmpty(userStoreDomain)) {
            sql = sql.replace(IDN_OAUTH2_ACCESS_TOKEN, IDN_OAUTH2_ACCESS_TOKEN + "_" + userStoreDomain);
        }
        if (!isUsernameCaseSensitive) {
            sql = sql.replace(AUTHZ_USER, LOWER_AUTHZ_USER);
        }

        prepStmt = connection.prepareStatement(sql);
        prepStmt.setString(1, persistenceProcessor.getProcessedClientId(consumerKey));
        if (isUsernameCaseSensitive) {
            prepStmt.setString(2, tenantAwareUsernameWithNoUserDomain);
        } else {
            prepStmt.setString(2, tenantAwareUsernameWithNoUserDomain.toLowerCase());
        }
        prepStmt.setInt(3, tenantId);
        prepStmt.setString(4, userDomain);
        ResultSet resultSet = prepStmt.executeQuery();

        while (resultSet.next()) {
            String accessToken = persistenceProcessor
                    .getPreprocessedAccessTokenIdentifier(resultSet.getString(1));
            if (accessTokenDOMap.get(accessToken) == null) {
                String refreshToken = persistenceProcessor.getPreprocessedRefreshToken(resultSet.getString(2));
                Timestamp issuedTime = resultSet.getTimestamp(3,
                        Calendar.getInstance(TimeZone.getTimeZone("UTC")));
                Timestamp refreshTokenIssuedTime = resultSet.getTimestamp(4,
                        Calendar.getInstance(TimeZone.getTimeZone("UTC")));
                long validityPeriodInMillis = resultSet.getLong(5);
                long refreshTokenValidityPeriodMillis = resultSet.getLong(6);
                String tokenType = resultSet.getString(7);
                String[] scope = OAuth2Util.buildScopeArray(resultSet.getString(8));
                String tokenId = resultSet.getString(9);

                User user = new User();
                user.setUserName(tenantAwareUsernameWithNoUserDomain);
                user.setTenantDomain(tenantDomain);
                user.setUserStoreDomain(userStoreDomain);
                AccessTokenDO dataDO = new AccessTokenDO(consumerKey, user, scope, issuedTime,
                        refreshTokenIssuedTime, validityPeriodInMillis, refreshTokenValidityPeriodMillis,
                        tokenType);
                dataDO.setAccessToken(accessToken);
                dataDO.setRefreshToken(refreshToken);
                dataDO.setTokenId(tokenId);
                accessTokenDOMap.put(accessToken, dataDO);
            } else {
                String scope = resultSet.getString(8).trim();
                AccessTokenDO accessTokenDO = accessTokenDOMap.get(accessToken);
                accessTokenDO.setScope((String[]) ArrayUtils.add(accessTokenDO.getScope(), scope));
            }
        }
        connection.commit();
    } catch (SQLException e) {
        String errorMsg = "Error occurred while retrieving 'ACTIVE' access tokens for " + "Client ID : "
                + consumerKey + " and User ID : " + userName;
        if (includeExpired) {
            errorMsg = errorMsg.replace("ACTIVE", "ACTIVE or EXPIRED");
        }
        throw new IdentityOAuth2Exception(errorMsg, e);
    } finally {
        IdentityDatabaseUtil.closeAllConnections(connection, null, prepStmt);
    }

    return new HashSet<>(accessTokenDOMap.values());
}

From source file:org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO.java

public Set<AccessTokenDO> getAccessTokensOfTenant(int tenantId) throws IdentityOAuth2Exception {

    Connection connection = IdentityDatabaseUtil.getDBConnection();

    PreparedStatement prepStmt = null;
    Map<String, AccessTokenDO> accessTokenDOMap = new HashMap<>();
    try {//from   ww w .ja  v a  2s. c  o m
        String sql = SQLQueries.LIST_ALL_TOKENS_IN_TENANT;

        prepStmt = connection.prepareStatement(sql);
        prepStmt.setInt(1, tenantId);
        ResultSet resultSet = prepStmt.executeQuery();

        while (resultSet.next()) {
            String accessToken = persistenceProcessor
                    .getPreprocessedAccessTokenIdentifier(resultSet.getString(1));
            if (accessTokenDOMap.get(accessToken) == null) {
                String refreshToken = persistenceProcessor.getPreprocessedRefreshToken(resultSet.getString(2));
                Timestamp issuedTime = resultSet.getTimestamp(3,
                        Calendar.getInstance(TimeZone.getTimeZone("UTC")));
                Timestamp refreshTokenIssuedTime = resultSet.getTimestamp(4,
                        Calendar.getInstance(TimeZone.getTimeZone("UTC")));
                long validityPeriodInMillis = resultSet.getLong(5);
                long refreshTokenValidityPeriodMillis = resultSet.getLong(6);
                String tokenType = resultSet.getString(7);
                String[] scope = OAuth2Util.buildScopeArray(resultSet.getString(8));
                String tokenId = resultSet.getString(9);
                String authzUser = resultSet.getString(10);
                String userStoreDomain = resultSet.getString(11);
                String consumerKey = resultSet.getString(12);

                User user = new User();
                user.setUserName(authzUser);
                user.setTenantDomain(OAuth2Util.getTenantDomain(tenantId));
                user.setUserStoreDomain(userStoreDomain);
                AccessTokenDO dataDO = new AccessTokenDO(consumerKey, user, scope, issuedTime,
                        refreshTokenIssuedTime, validityPeriodInMillis, refreshTokenValidityPeriodMillis,
                        tokenType);
                dataDO.setAccessToken(accessToken);
                dataDO.setRefreshToken(refreshToken);
                dataDO.setTokenId(tokenId);
                accessTokenDOMap.put(accessToken, dataDO);
            } else {
                String scope = resultSet.getString(8).trim();
                AccessTokenDO accessTokenDO = accessTokenDOMap.get(accessToken);
                accessTokenDO.setScope((String[]) ArrayUtils.add(accessTokenDO.getScope(), scope));
            }
        }
        connection.commit();
    } catch (SQLException e) {
        String errorMsg = "Error occurred while retrieving 'ACTIVE or EXPIRED' access tokens for "
                + "user  tenant id : " + tenantId;
        throw new IdentityOAuth2Exception(errorMsg, e);
    } finally {
        IdentityDatabaseUtil.closeAllConnections(connection, null, prepStmt);
    }

    return new HashSet<>(accessTokenDOMap.values());
}

From source file:org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO.java

public Set<AccessTokenDO> getAccessTokensOfUserStore(int tenantId, String userStoreDomain)
        throws IdentityOAuth2Exception {

    //we do not support access token partitioning here
    Connection connection = IdentityDatabaseUtil.getDBConnection();

    userStoreDomain = userStoreDomain.toUpperCase();
    PreparedStatement prepStmt = null;
    Map<String, AccessTokenDO> accessTokenDOMap = new HashMap<>();
    try {/*w  ww. jav a 2 s  .  c  o  m*/
        String sql = SQLQueries.LIST_ALL_TOKENS_IN_USER_STORE;

        prepStmt = connection.prepareStatement(sql);
        prepStmt.setInt(1, tenantId);
        prepStmt.setString(2, userStoreDomain);
        ResultSet resultSet = prepStmt.executeQuery();

        while (resultSet.next()) {
            String accessToken = persistenceProcessor
                    .getPreprocessedAccessTokenIdentifier(resultSet.getString(1));
            if (accessTokenDOMap.get(accessToken) == null) {
                String refreshToken = persistenceProcessor.getPreprocessedRefreshToken(resultSet.getString(2));
                Timestamp issuedTime = resultSet.getTimestamp(3,
                        Calendar.getInstance(TimeZone.getTimeZone("UTC")));
                Timestamp refreshTokenIssuedTime = resultSet.getTimestamp(4,
                        Calendar.getInstance(TimeZone.getTimeZone("UTC")));
                long validityPeriodInMillis = resultSet.getLong(5);
                long refreshTokenValidityPeriodMillis = resultSet.getLong(6);
                String tokenType = resultSet.getString(7);
                String[] scope = OAuth2Util.buildScopeArray(resultSet.getString(8));
                String tokenId = resultSet.getString(9);
                String authzUser = resultSet.getString(10);
                String consumerKey = resultSet.getString(11);

                User user = new User();
                user.setUserName(authzUser);
                user.setTenantDomain(OAuth2Util.getTenantDomain(tenantId));
                user.setUserStoreDomain(userStoreDomain);
                AccessTokenDO dataDO = new AccessTokenDO(consumerKey, user, scope, issuedTime,
                        refreshTokenIssuedTime, validityPeriodInMillis, refreshTokenValidityPeriodMillis,
                        tokenType);
                dataDO.setAccessToken(accessToken);
                dataDO.setRefreshToken(refreshToken);
                dataDO.setTokenId(tokenId);
                accessTokenDOMap.put(accessToken, dataDO);
            } else {
                String scope = resultSet.getString(8).trim();
                AccessTokenDO accessTokenDO = accessTokenDOMap.get(accessToken);
                accessTokenDO.setScope((String[]) ArrayUtils.add(accessTokenDO.getScope(), scope));
            }
        }
        connection.commit();
    } catch (SQLException e) {
        String errorMsg = "Error occurred while retrieving 'ACTIVE or EXPIRED' access tokens for "
                + "user in store domain : " + userStoreDomain + " and tenant id : " + tenantId;
        throw new IdentityOAuth2Exception(errorMsg, e);
    } finally {
        IdentityDatabaseUtil.closeAllConnections(connection, null, prepStmt);
    }

    return new HashSet<>(accessTokenDOMap.values());
}

From source file:org.wso2.carbon.identity.oauth2.internal.OAuthApplicationMgtListener.java

private void addClientSecret(ServiceProvider serviceProvider) throws IdentityApplicationManagementException {

    if (serviceProvider == null) {
        return; // if service provider is not present no need to add this information
    }//from   ww  w  . j  ava  2  s  . co m

    try {
        InboundAuthenticationConfig inboundAuthenticationConfig = serviceProvider
                .getInboundAuthenticationConfig();
        if (inboundAuthenticationConfig != null) {
            InboundAuthenticationRequestConfig[] inboundRequestConfigs = inboundAuthenticationConfig
                    .getInboundAuthenticationRequestConfigs();
            if (inboundRequestConfigs != null) {
                for (InboundAuthenticationRequestConfig inboundRequestConfig : inboundRequestConfigs) {
                    if (inboundRequestConfig.getInboundAuthType().equals(OAUTH2)) {
                        Property[] props = inboundRequestConfig.getProperties();
                        Property property = new Property();
                        property.setName(OAUTH2_CONSUMER_SECRET);
                        property.setValue(getClientSecret(inboundRequestConfig.getInboundAuthKey()));
                        props = (Property[]) ArrayUtils.add(props, property);
                        inboundRequestConfig.setProperties(props);
                        continue;// we are interested only on oauth2 config. Only one will be present.
                    } else {
                        //ignore
                    }
                }
            } else {
                //ignore
            }
        } else {
            //nothing to do
        }
    } catch (IdentityOAuthAdminException e) {
        throw new IdentityApplicationManagementException("Injecting client secret failed.", e);
    }

    return;
}

From source file:padl.creator.classfile.util.Utils.java

private static IFirstClassEntity searchForEnclosedEntity(final IAbstractLevelModel anAbstractModel,
        final IFirstClassEntity anEnclosingEntity, final char[] anEntityName) {

    final char[] nameFirstPart;
    if (Utils.isMemberEntity(anEntityName)) {
        nameFirstPart = ArrayUtils.subarray(anEntityName, 0, ArrayUtils.indexOf(anEntityName, '$'));
    } else {//from  w w  w.  ja  va 2  s .  c om
        nameFirstPart = ArrayUtils.subarray(anEntityName, 0, anEntityName.length);
    }

    // Yann 2016/09/18: Member IDs!
    // Member entities have their fully-qualified names (with $) as IDs...
    final char[] id = ArrayUtils.addAll(ArrayUtils.add(anEnclosingEntity.getID(), '$'), nameFirstPart);

    IFirstClassEntity firstClassEntity = (IFirstClassEntity) anEnclosingEntity.getConstituentFromID(id);
    if (firstClassEntity == null) {
        firstClassEntity = Utils.createMemberGhost(anAbstractModel, anEnclosingEntity, id);
    }

    if (Utils.isMemberEntity(anEntityName)) {
        return Utils.searchForEnclosedEntity(anAbstractModel, firstClassEntity, ArrayUtils
                .subarray(anEntityName, ArrayUtils.indexOf(anEntityName, '$') + 1, anEntityName.length));
    } else {
        return firstClassEntity;
    }
}

From source file:padl.creator.cppfile.eclipse.plugin.internal.GeneratorHelper.java

private void addEntityToModelOrMemberToClass(final Accumulator anAccumulator, final ICPPClassType aCPPEntity,
        final Stack<IContainer> someContainers) {

    final IContainer container = someContainers.peek();

    char[] id;//from w  w w .j  a v  a 2s  .co m
    try {
        id = Utils.getQualifiedName(aCPPEntity.getQualifiedNameCharArray());
    } catch (final DOMException e) {
        e.printStackTrace(ProxyConsole.getInstance().errorOutput());
        throw new RuntimeException(e);
    }
    char[] name = aCPPEntity.getNameCharArray();
    // It is possible for the name to be empty, 
    // for enumeration for example
    if (id.length == 0 || name.length == 0) {
        // id.length could be 1 in case of union... 
        id = Utils.createAnonymousName(GeneratorHelper.UniqueID++);
        name = id;
    }

    // Yann 2013/09/28: Name vs. ID!
    // Member entities have for name the simple name of the entity
    // but for ID the ID of their container and "$" and their ID.
    char[] memberID = ((IConstituent) container).getID();
    memberID = ArrayUtils.add(memberID, IConstants.MEMBER_ENTITY_SYMBOL);
    memberID = ArrayUtils.addAll(memberID, name);

    // It is possible that the entity already exists in the case of
    // In one file:
    //   class DebuggerWrapper;
    // In another file:
    //   class DebuggerWrapper {
    //      ...
    if (container.doesContainConstituentWithID(id) || container.doesContainConstituentWithID(memberID)) {

        return;
    }

    final IFirstClassEntity entity;
    final int type = aCPPEntity.getKey();
    if (type == ICPPASTCompositeTypeSpecifier.k_class) {
        if (container instanceof IFirstClassEntity) {
            if (Utils.isInterface(aCPPEntity)) {
                entity = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createMemberInterface(memberID,
                        name);
            } else {
                entity = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createMemberClass(memberID,
                        name);
                entity.setAbstract(Utils.isAbstract(aCPPEntity));
            }
        } else {
            if (Utils.isInterface(aCPPEntity)) {
                entity = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createInterface(id, name);
            } else {
                entity = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createClass(id, name);
                entity.setAbstract(Utils.isAbstract(aCPPEntity));
                entity.equals(entity);
            }
        }
    } else if (type == IASTCompositeTypeSpecifier.k_struct) {
        if (container instanceof IFirstClassEntity) {
            entity = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createMemberStructure(memberID);
        } else {
            entity = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createStructure(id);
        }
    } else if (type == IASTCompositeTypeSpecifier.k_union) {
        entity = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createUnion(id);
    } else {
        entity = null;
        // Should never happen! Would fail fast!
    }

    container.addConstituent(entity);
    anAccumulator.addClassTypes(aCPPEntity, entity);
}

From source file:padl.creator.cppfile.eclipse.plugin.internal.GeneratorHelper.java

void convertDeclaration(final Accumulator accumulator, final ICPPASTUsingDirective aDeclaration,
        final Stack<IContainer> someContainers) {

    // Example: using namespace std;
    // Here, I am sure that the name (even
    // qualified), is the name of a package.
    IContainer container = this.codeLevelModel;
    final char[][] names = Utils.getQualifiedName(aDeclaration.getQualifiedName().toCharArray());
    for (int i = 0; i < names.length; i++) {
        final char[] name = names[i];
        char[] id = name;
        if (i > 0) {
            id = ArrayUtils.addAll(ArrayUtils.add(id, Utils.SEPARATOR), name);
        }/*from ww  w.j a  va  2 s.co  m*/
        if (!container.doesContainConstituentWithID(id)) {
            container.addConstituent(
                    ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createPackageGhost(id));
        }
        container = (IContainer) container.getConstituentFromName(name);
    }
}

From source file:padl.creator.cppfile.eclipse.plugin.internal.SearchHelper.java

private static IContainer findContainerOrCreateGhostInContainer(final IContainer aContainer, final char[] anID,
        final char[] aName, boolean isGlobalFunction, boolean isLastPartOfFullyQualifiedName) {

    // Yann 2013/09/28: Name vs. ID!
    // Member entities have for name the simple name of the entity
    // but for ID the ID of their container and "$" and their ID. 
    char[] memberID = ((IConstituent) aContainer).getID();
    memberID = ArrayUtils.add(memberID, IConstants.MEMBER_ENTITY_SYMBOL);
    memberID = ArrayUtils.addAll(memberID, aName);

    IContainer container = (IContainer) aContainer.getConstituentFromID(anID);
    if (container == null) {
        container = (IContainer) aContainer.getConstituentFromID(memberID);
    }/*from   w w  w.  java2 s. c  o m*/
    if (container == null) {
        if (isLastPartOfFullyQualifiedName) {
            if (aContainer instanceof IPackage) {
                if (isGlobalFunction) {
                    // Yann 2013/07/16: Interesting!
                    // Here, I must create a "ghost" global function,
                    // I should probably add this type to the meta-model.
                    container = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance())
                            .createGlobalFunctionGhost(anID, aName);
                } else {
                    container = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createGhost(anID, aName);
                }
            } else if (aContainer instanceof IFirstClassEntity) {
                if (isGlobalFunction) {
                    // Yann 2013/07/16: Interesting!
                    // Here, I must create a "ghost" global function,
                    // I should probably add this type to the meta-model.
                    container = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance())
                            .createGlobalFunctionGhost(anID, aName);
                } else {
                    container = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance())
                            .createMemberGhost(memberID, aName);
                }
            } else {
                // Yes, it is legal in C++ to have structure in methods...
                // Certainly classes too, but at this point I don't want
                // to distinguish one from the others...
                container = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance())
                        .createMemberStructure(memberID);
            }
        } else {
            if (aContainer instanceof IPackage) {
                container = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createGhost(anID, aName);
            } else if (aContainer instanceof IFirstClassEntity) {
                container = ((ICPPFactoryEclipse) CPPFactoryEclipse.getInstance()).createMemberGhost(memberID,
                        aName);
            }
        }
        aContainer.addConstituent((IConstituent) container);
    }
    return container;
}

From source file:padl.creator.cppfile.eclipse.plugin.internal.SearchHelper.java

static IContainer findContainerOrCreateGhostInModelRecursively(final ICodeLevelModel aCodeLevelModel,
        final char[][] qualifiedName, boolean isGlobalFunction) {

    char[] name = qualifiedName[0];
    char[] id = qualifiedName[0];
    IContainer container = SearchHelper.findContainerOrCreateGhostInModel(aCodeLevelModel, id, name,
            isGlobalFunction, qualifiedName.length == 1);
    for (int i = 1; i < qualifiedName.length; i++) {
        name = qualifiedName[i];//from  w  ww .  jav a  2  s .  c om
        id = ArrayUtils.addAll(ArrayUtils.add(id, Utils.SEPARATOR), qualifiedName[i]);
        container = SearchHelper.findContainerOrCreateGhostInContainer((IContainer) container, id, name,
                isGlobalFunction, i == qualifiedName.length - 1);
    }
    return container;
}