/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.resource; import java.io.Serializable; import java.util.Calendar; abstract class ResourceBaseImpl implements Serializable, ResourceBase { protected final FileResourceName name; protected final FileResourceService service; public ResourceBaseImpl( FileResourceService service, FileResourceName name ) { this.service = service; this.name = name; } public String getName() { return this.name.getName(); } public boolean exists() { return this.service.getResource( this.name ) != null; } public String getPath() { return this.name.getPath(); } public ResourceKey getResourceKey() { return ResourceKey.from( getPath() ); } protected final FileResource ensureResource() { FileResource resource = this.service.getResource( this.name ); if ( resource == null ) { throw new IllegalStateException( "Resource [" + this.name + "] does not exist" ); } return resource; } public Calendar getLastModified() { return ensureResource().getLastModified().toGregorianCalendar(); } public boolean isHidden() { return this.name.isHidden(); } }