1 /*
2 * (C) Copyright 1989-2011 Trend Micro, Inc.
3 * All Rights Reserved.
4 *
5 * This program is an unpublished copyrighted work which is proprietary
6 * to Trend Micro, Inc. and contains confidential information that is not
7 * to be reproduced or disclosed to any other person or entity without
8 * prior written consent from Trend Micro, Inc. in each and every instance.
9 *
10 * WARNING: Unauthorized reproduction of this program as well as
11 * unauthorized preparation of derivative works based upon the
12 * program or distribution of copies by sale, rental, lease or
13 * lending are violations of federal copyright laws and state trade
14 * secret laws, punishable by civil and criminal penalties.
15 */
16
17 package com.trendmicro.grid.acl.ds.cache.translation;
18
19 import com.trendmicro.grid.acl.ds.datatypes.SharedFileDetails;
20 import com.trendmicro.grid.acl.ds.datatypes.SharedFileInformation;
21
22 /**
23 * Extension to ValueExistsTranslator that honors the "isUnknown" flag on SharedFileInformation instances.
24 *
25 * @author juergen_kellerer, 2011-04-21
26 * @version 1.0
27 */
28 public class FileAwareValueExistsTranslator<K> extends ValueExistsTranslator<K> {
29 @Override
30 protected Boolean fromDelegateValue(K key, K delegateKey, Object delegateValue) {
31 if (delegateValue != null) {
32 if (delegateValue instanceof SharedFileDetails)
33 delegateValue = ((SharedFileDetails) delegateValue).getInformation();
34 if (delegateValue instanceof SharedFileInformation)
35 return !((SharedFileInformation) delegateValue).isUnknown();
36 }
37 return super.fromDelegateValue(key, delegateKey, delegateValue);
38 }
39 }