Copyright (c) 2005, 2013 BEA Systems, Inc.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
tyeung@bea.com - initial API and implementation
IBM Corporation - implemented methods from IBinding
IBM Corporation - renamed from ResolvedDefaultValuePair to DefaultValuePairBinding
IBM Corporation - Fix for 328969
/*******************************************************************************
* Copyright (c) 2005, 2013 BEA Systems, Inc.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* tyeung@bea.com - initial API and implementation
* IBM Corporation - implemented methods from IBinding
* IBM Corporation - renamed from ResolvedDefaultValuePair to DefaultValuePairBinding
* IBM Corporation - Fix for 328969
*******************************************************************************/
package org.eclipse.jdt.core.dom;
import org.eclipse.jdt.core.dom.BindingResolver;
import org.eclipse.jdt.core.dom.IMethodBinding;
Member value pair which compose of default values.
/**
* Member value pair which compose of default values.
*/
class DefaultValuePairBinding extends MemberValuePairBinding {
private org.eclipse.jdt.internal.compiler.lookup.MethodBinding method;
DefaultValuePairBinding(org.eclipse.jdt.internal.compiler.lookup.MethodBinding binding, BindingResolver resolver) {
super(null, resolver);
this.method = binding;
this.value = MemberValuePairBinding.buildDOMValue(binding.getDefaultValue(), resolver);
if (binding.returnType != null && binding.returnType.isArrayType()) {
// wrap into an array
if (this.value == null) {
this.value = new Object[0];
} else if (!this.value.getClass().isArray()) {
this.value = new Object[] { this.value };
}
}
}
@Override
public IMethodBinding getMethodBinding() {
return this.bindingResolver.getMethodBinding(this.method);
}
@Override
public String getName() {
return new String(this.method.selector);
}
@Override
public Object getValue() {
return this.value;
}
@Override
public boolean isDefault() {
return true;
}
@Override
public boolean isDeprecated() {
return this.method.isDeprecated();
}
}