/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
* Copyright (c) 2013, MPL CodeInside http://codeinside.ru
*/
package ru.codeinside.gses.beans.export;
import ru.codeinside.gses.beans.DirectoryBean;
import ru.codeinside.gses.beans.DirectoryBeanProvider;
import java.util.Map;
final public class Internals implements ru.codeinside.gws.api.Internals {
@Override
public Map<String, String> getDictionary(String dictionaryId) {
final DirectoryBean directoryBean = poolDirectoryBean(5000, 250);
return directoryBean != null ? directoryBean.getValues(dictionaryId) : null;
}
private DirectoryBean poolDirectoryBean(final int totalMillis, final int stepMillis) {
final long timeOut = System.currentTimeMillis() + totalMillis;
DirectoryBean directoryBean = DirectoryBeanProvider.getOptional();
if (directoryBean == null) {
do {
try {
Thread.sleep(stepMillis);
} catch (InterruptedException e) {
break;
}
directoryBean = DirectoryBeanProvider.getOptional();
} while (directoryBean == null && timeOut > System.currentTimeMillis());
}
return directoryBean;
}
}