package io.loli.sc.server.service; import io.loli.sc.server.dao.BucketDao; import io.loli.sc.server.entity.StorageBucket; import java.util.List; import java.util.stream.Collectors; import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; @Named @Singleton public class BucketService { private List<StorageBucket> bucketList; private StorageBucket[] bucketArray; private StorageBucket[] imageArray; private StorageBucket[] fileArray; @Inject public BucketService(BucketDao bucketDao) { if (bucketList == null) { bucketList = bucketDao.list(); } if (bucketArray == null) { bucketArray = bucketList.toArray(new StorageBucket[bucketList.size()]); } if (imageArray == null) { List<StorageBucket> list = bucketList.stream() .filter(item -> item.getFileType().equals(StorageBucket.IMG_TYPE)).collect(Collectors.toList()); imageArray = list.toArray(new StorageBucket[list.size()]); } if (fileArray == null) { List<StorageBucket> list = bucketList.stream() .filter(item -> item.getFileType().equals(StorageBucket.FILE_TYPE)).collect(Collectors.toList()); fileArray = list.toArray(new StorageBucket[list.size()]); } } public void refresh() { } public List<StorageBucket> list() { return bucketList; } public StorageBucket[] listWithArray() { return bucketArray; } public StorageBucket randomImageBucket() { double d = Math.random(); int i = (int) (d * imageArray.length); return imageArray[i]; } public StorageBucket randomFileBucket() { double d = Math.random(); int i = (int) (d * fileArray.length); return fileArray[i]; } public StorageBucket singleFileBucket() { return fileArray[0]; } public StorageBucket randomBucket() { double d = Math.random(); int i = (int) (d * bucketArray.length); return bucketArray[i]; } }