Java tutorial
/* * Copyright 2012 AMG.lab, a Bull Group Company * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.xlcloud.console.images.controllers; import javax.annotation.PostConstruct; import javax.inject.Inject; import javax.inject.Named; import org.apache.commons.io.FileUtils; import org.xlcloud.console.controllers.i18n.MessageController; import org.xlcloud.console.controllers.request.RequestParameters; import org.xlcloud.console.controllers.request.path.VcmsGuiPaths; import org.xlcloud.console.images.repository.ImagesRepository; import org.xlcloud.console.images.utils.PropertyStringConverter; import org.xlcloud.console.scope.ViewScoped; import org.xlcloud.service.Account; import org.xlcloud.service.Image; /** */ @Named @ViewScoped public class ImageBean { public static final String IMAGE_ID = "imageId"; private Image image; private Account projectAccount; @Inject private ImagesRepository imagesRepository; @Inject private RequestParameters requestParameters; @Inject private MessageController messages; /** * Initializes bean by downloading cloud image. * Request parameter {@link #IMAGE_ID} is required. */ @PostConstruct public void loadImage() { Long imageId = getImageId(); this.image = imagesRepository.get(imageId); } /** * Removes current cloud image from images catalog. * @return redirection URL */ public String remove() { imagesRepository.remove(image.getId()); messages.addMessage("images.list.removeSuccessful"); return VcmsGuiPaths.IMAGES + "?faces-redirect=true"; } /** * Returns the requested cloud image * @return requested cloud image */ public Image getImage() { return image; } /** * Sets the value of {@link #imagesRepository} * @param imagesRepository - * images repository */ public void setImagesRepository(ImagesRepository imagesRepository) { this.imagesRepository = imagesRepository; } /** * Sets the value of {@link #requestParameters} * @param requestParameters request parameters */ public void setRequestParameters(RequestParameters requestParameters) { this.requestParameters = requestParameters; } private Long getImageId() { return this.requestParameters.getParameterAsLong(IMAGE_ID); } public String getPropertyString() { return PropertyStringConverter.stringifyProperties(image.getProperties()); } public void setPropertyString(String string) { image.setProperties(PropertyStringConverter.parseProperties(string)); } /** * Gets the value of {@link #imageAccount}. * @return value of {@link #imageAccount} */ public Account getImageAccount() { if (projectAccount == null) { projectAccount = imagesRepository.getAccount(image.getAccountId()); } return projectAccount; } public String getImageSize() { return FileUtils.byteCountToDisplaySize(image.getSize()); } }