Java tutorial
/** * Copyright 2014 Comcast Cable Communications Management, LLC * * This file is part of CATS. * * CATS is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * CATS is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with CATS. If not, see <http://www.gnu.org/licenses/>. */ package com.comcast.cats.config.ui.recording; import java.net.MalformedURLException; import java.net.URL; import java.util.Date; import javax.annotation.ManagedBean; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.comcast.cats.config.ui.AuthController; /** * This is to abstract MediaINfo in video-recorder so that changes there wont * affect CATS-UI. * * @author skurup00c * */ @ManagedBean public class MediaInfoBean { Date createdDate = null; Date lastModifiedDate = null; String filePath = null; String directory = null; public String fileName = DEFAULT_FILE_NAME; public int fileSize = DEFAULT_FILE_SIZE; int duration = 0; static final String DEFAULT_FILE_NAME = ""; static final int DEFAULT_FILE_SIZE = 0; int id; SettopRecordingBean recording; boolean playable = false; private static Logger logger = LoggerFactory.getLogger(MediaInfoBean.class); public Date getCreatedDate() { return createdDate; } public void setCreatedDate(Date createdDate) { this.createdDate = createdDate; } public Date getLastModifiedDate() { return lastModifiedDate; } public void setLastModifiedDate(Date lastModifiedDate) { this.lastModifiedDate = lastModifiedDate; } public SettopRecordingBean getRecording() { return recording; } public void setRecording(SettopRecordingBean recording) { this.recording = recording; } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { //FIXME: once video recorder service returns the actual path isntead of 127.0.0.1 this.filePath = substituteFilePath(filePath); try { setFileName(this.filePath.substring(this.filePath.lastIndexOf("/") + 1)); setDirectory(this.filePath.substring(0, this.filePath.lastIndexOf("/"))); } catch (StringIndexOutOfBoundsException e) { logger.debug("Invalid Filename " + this.filePath + " meesage: " + e.getMessage()); // invalid Filename. setFileName(DEFAULT_FILE_NAME); } } private String substituteFilePath(String filePath) { String retVal = filePath; try { URL filePathURL = new URL(filePath); String host = filePathURL.getHost(); retVal = StringUtils.replaceOnce(filePath, host, AuthController.getHostAddress()); } catch (MalformedURLException e) { logger.debug("Provider doesnt know how to parse this syntax"); } return retVal; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public int getFileSize() { return fileSize; } public void setFileSize(int fileSize) { this.fileSize = fileSize; } public String getDirectory() { return directory; } public void setDirectory(String directory) { this.directory = directory; } public void setDuration(int duration) { this.duration = duration; } public int getDuration() { return duration; } public int getId() { return id; } public void setId(int id) { this.id = id; } public boolean isPlayable() { return playable; } public void setPlayable(boolean playable) { this.playable = playable; } @Override public boolean equals(Object object) { boolean retVal = false; if (object instanceof MediaInfoBean) { if (((MediaInfoBean) object).getId() == this.getId()) { retVal = true; } } return retVal; } }