/** * 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; } }