class PreferenceStorageImpl implements PreferenceStorage {

    @Override
    public <T> T read(final PreferenceScope preferenceScope,
                      final String key) {
        final String path = buildScopedPreferencePath(preferenceScope,
                                                      key);
        return objectStorage.read(path);
    }

    protected  PreferenceStorageImpl();
    @Inject public  PreferenceStorageImpl(@Named("ioStrategy") final IOService ioService,
                                 final SessionInfo sessionInfo,
                                 @Customizable final PreferenceScopeTypes scopeTypes,
                                 final PreferenceScopeFactory scopeFactory,
                                 final ObjectStorage objectStorage,
                                 final SpacesAPI spaces,
                                 final Event<PreferenceUpdatedEvent> preferenceUpdatedEvent);

}