class AsyncPackageDataModelOracleImpl implements AsyncPackageDataModelOracle {

    @Override
    public String[] getExternalFactTypes() {
        final String[] allTypes = getAllFactTypes();
        final List<String> externalTypes = new ArrayList<String>();
        for (String type : allTypes) {
            final String packageName = AsyncPackageDataModelOracleUtilities.getPackageName(type);
            if (!packageName.equals(this.packageName)) {
                externalTypes.add(type);
            }
        }
        final String[] result = new String[externalTypes.size()];
        externalTypes.toArray(result);
        return result;
    }

    @Inject public  AsyncPackageDataModelOracleImpl(final Caller<IncrementalDataModelService> service,
                                           final Instance<DynamicValidator> validatorInstance);

}