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 }