View Javadoc
1   /*
2    * Licensed to The Apereo Foundation under one or more contributor license
3    * agreements. See the NOTICE file distributed with this work for additional
4    * information regarding copyright ownership.
5    *
6    *
7    * The Apereo Foundation licenses this file to you under the Educational
8    * Community License, Version 2.0 (the "License"); you may not use this file
9    * except in compliance with the License. You may obtain a copy of the License
10   * at:
11   *
12   *   http://opensource.org/licenses/ecl2.txt
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
17   * License for the specific language governing permissions and limitations under
18   * the License.
19   *
20   */
21  
22  package org.opencastproject.workspace.impl.jmx;
23  
24  import org.opencastproject.util.data.Option.Match;
25  import org.opencastproject.workspace.api.Workspace;
26  
27  public class WorkspaceBean implements WorkspaceMXBean {
28  
29    private final Workspace workspace;
30  
31    public WorkspaceBean(Workspace workspace) {
32      this.workspace = workspace;
33    }
34  
35    /**
36     * @see org.opencastproject.workspace.impl.jmx.WorkspaceMXBean#getFreeSpace()
37     */
38    @Override
39    public long getFreeSpace() {
40      return workspace.getUsableSpace().fold(new Match<Long, Long>() {
41        @Override
42        public Long some(Long a) {
43          return a;
44        }
45  
46        @Override
47        public Long none() {
48          return -1L;
49        }
50      });
51    }
52  
53    /**
54     * @see org.opencastproject.workspace.impl.jmx.WorkspaceMXBean#getUsedSpace()
55     */
56    @Override
57    public long getUsedSpace() {
58      return workspace.getUsedSpace().fold(new Match<Long, Long>() {
59        @Override
60        public Long some(Long a) {
61          return a;
62        }
63  
64        @Override
65        public Long none() {
66          return -1L;
67        }
68      });
69    }
70  
71    /**
72     * @see org.opencastproject.workspace.impl.jmx.WorkspaceMXBean#getTotalSpace()
73     */
74    @Override
75    public long getTotalSpace() {
76      return workspace.getTotalSpace().fold(new Match<Long, Long>() {
77        @Override
78        public Long some(Long a) {
79          return a;
80        }
81  
82        @Override
83        public Long none() {
84          return -1L;
85        }
86      });
87    }
88  
89  }